title: regex findall pattern that doesnt contain another pattern - Python
body: <p>I am trying to findall the matching patterns from a string but without containing the same pattern as a substring. What I need to do is, findall pattern that matches to &lt;.<em>:.</em>> ,without any nested tag(same pattern) after the ':'.</p>
  
  <p>This is the input string, </p>
  
  <pre><code>&lt;First tag:Some text&lt;Second tag:Text for second tag&gt;Some other tag&lt;Third tag:Text for third tag&gt;Remaining text
  </code></pre>
  
  <p>Expected output,</p>
  
  <pre><code>['&lt;Second tag:Text for second tag&gt;','&lt;Third tag:Text for third tag&gt;']
  </code></pre>
  
  <p>One more input string, </p>
  
  <pre><code>&lt;First tag:Some text&lt;Second tagText for second tag&gt;Some other tag&lt;Third tag:Text for third tag&gt;Remaining text
  </code></pre>
  
  <p>Output, </p>
  
  <pre><code>['&lt;First tag:Some text&lt;Second tagText for second tag&gt;','&lt;Third tag:Text for third tag&gt;']
  </code></pre>
  
  <p>I tried this way</p>
  
  <pre><code>re.findall('\&lt;[^\&lt;.*:.*\&gt;]+:[^\&lt;.*:.*\&gt;]+\&gt;', input_string)
  </code></pre>
  
  <p>This passes in the first example input, but fails in the second one.
  Any suggestion would be appreciated :)</p>