title: Non greedy matching using ? with grep
body: <p>I'm writing a bash script which analyses a html file and
  I want to get the content of each single <code>&lt;tr&gt;...&lt;/tr&gt;</code>. So my command looks like:</p>
  
  <pre><code>$ tr -d \\012 &lt; price.html | grep -oE '&lt;tr&gt;.*?&lt;/tr&gt;'
  </code></pre>
  
  <p>But it seems that <code>grep</code> gives me the result of:</p>
  
  <pre><code>$ tr -d \\012 &lt; price.html | grep -oE '&lt;tr&gt;.*&lt;/tr&gt;'
  </code></pre>
  
  <p>How can I make <code>.*</code> non-greedy?</p>