title: Regex with negative lookahead, spanning multiple lines
body: <p>I am having troubles getting the proper regex for my current testcase.</p>
  
  <p>Example testcase:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;foo_file.h&gt;
  
  int myint = atoi(foostring1);
  
  float myfloat = atof(foostring2);
  
  int myint2 = atoi(foostring3);
  </code></pre>
  
  <p>Use case:</p>
  
  <ol>
  <li>string contains atof
  and</li>
  <li>string doesnt contain the string stdlib.h</li>
  <li>Groups dont matter.  I just want to know if the string exists or not.</li>
  </ol>
  
  <p>With the regex</p>
  
  <pre><code>(?=^#include &lt;stdlib.h&gt;).*atof
  </code></pre>
  
  <p>I can find if the file contains stdlib header and atof.  Works great.  However
  I cant seem to get a negative look forward regex like</p>
  
  <pre><code>(?!(?=.*^#include &lt;stdlib.h&gt;)).*(atoi)
  </code></pre>
  
  <p>I have tried many hours of different iterations of the above regex line but
  cant get it to work.</p>
  
  <p>Assume the IDE's regex engine I am using allows matching across the new/line
  return characters and allows me to pick what regex parser/engine I want to
  use (but I normally use perl's)</p>