title: Regexp for finding tags without nested tags
body: <p>I'm trying to write a regexp which will help to find non-translated texts in html code. </p>
  
  <p>Translated texts means that they are going through special tag:  or through construction: ${...}</p>
  
  <p>Ex. non-translated:</p>
  
  <pre><code>&lt;h1&gt;Hello&lt;/h1&gt;
  </code></pre>
  
  <p>Translated texts are:</p>
  
  <pre><code>&lt;h1&gt;&lt;fmt:message key="hello" /&gt;&lt;/h1&gt;
  &lt;button&gt;${expression}&lt;/button&gt;
  </code></pre>
  
  <p>I've written the following expression:</p>
  
  <pre><code>\&lt;(\w+[^&gt;])(?:.*)\&gt;([^\s]+?)\&lt;/\1\&gt;
  </code></pre>
  
  <p>It finds correct strings like:</p>
  
  <pre><code>&lt;p&gt;text&lt;p&gt;
  </code></pre>
  
  <p>Correctly skips</p>
  
  <pre><code>&lt;a&gt;&lt;fmt:message key="common.delete" /&gt;&lt;/a&gt;
  </code></pre>
  
  <p>But also catches:</p>
  
  <pre><code>&lt;li&gt;&lt;p&gt;&lt;fmt:message key="common.delete" /&gt;&lt;/p&gt;&lt;/li&gt;
  </code></pre>
  
  <p>And I can't figure out how to add exception for ${...} strings in this expression
  Can anybody help me?</p>