title: What is wrong with my grep OR expression?
body: <p>I'm a new with <code>grep</code> complex expressions. 
  I need to find in a big log file lines according to multiple conditions.<br>
  It should be between some time-stamps, let's say between <code>14:11:55</code> and <code>14:12:05</code>, should contain <code>HardwareMmonitorHandlerSubscriber</code> and <code>ERROR</code> strings.<br>
  I'm trying to use something like </p>
  
  <pre><code>grep (?=^.*(14:11:[5-9]|14:12:0[0-5]))(?=^.*HardwareMmonitorHandlerSubscriber) log.log  
  </code></pre>
  
  <p>but it gives me an error even when I'm trying to combine 2 conditions  </p>
  
  <pre><code>grep ^.*(14:11:[5-9]|14:12:0[0-5]) log.log  
  </code></pre>
  
  <p>gives me <code>-bash: syntax error near unexpected token</code>('`<br>
  error and  </p>
  
  <pre><code>grep ^.*14:11:[5-9]|^.*14:12:0[0-5] log.log   
  </code></pre>
  
  <p>gives me   </p>
  
  <pre><code>-bash: ^.*14:12:0[0-5]: command not found  
  </code></pre>
  
  <p>error<br>
  I'm using it with <code>Cygwin</code> on my Windows 7 PC</p>