title: preg_match exclude strings
body: <p>From 10,000 lines of data I have to get all the lines that <strong>don't</strong> contain words that START like "en" or "it" or "de" etc.., that are from 2 to 5 long a-z and A-Z with "-" too (minus sign) and ";"</p>
  
  <p>I tried this but doesn't work</p>
  
  <pre><code> !preg_match("/\b(it|en|de|es|fr|ru)[a-zA-Z-;]{2,5}/", $value)
  </code></pre>
  
  <p>this would be read (to me) don't match all the lines have words that start with it, en, etc. are composed of  2 to 5 chars and in those 5 chars can contain also "-" or ";".</p>
  
  <p>This returns me lines with "it;" which I need to exclude.</p>
  
  <p>EDIT: I need to match every word that starts with those 2 characters (<em>it</em> or <em>en</em> or <em>de</em>) and can be everywhere in the line</p>
  
  <p>Example to match (it doesn't contain words that start with "en", "de", etc.)</p>
  
  <pre><code>GET; SITE; 15:03:03; ; Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1; .NET4.0C); 
  </code></pre>
  
  <p>Example not to match (it does contain a word that start with "en")</p>
  
  <pre><code>GET; SITE; 13:06:49; ; Mozilla/4.0 (compatible; **en;** MSIE 8.0; Windows NT 6.1; Trident/4.0; SIMBAR={E76F6580-EB92-49A3-A089-F6B8B9DEA9AA}; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; eSobiSubscriber 2.0.4.16; Media Center PC 5.0; SLCC1; .NET4.0C); ; 
  </code></pre>