 <p>You don't have just one line-break but more. <code>.</code> is just recognizing symbols, but no white-spaces, line-breaks or things like those. Additional to that, when you use the <code>*</code> then you don't need a <code>?</code> anymore.</p> <p>So a valid rule for your example would be: <code>&lt;w:p (.|\s)*&lt;w:t&gt;(.|\s)*&lt;/w:p&gt;</code></p>