title: Bash script output text between first match and 2nd match only
body: <p>Trying to match before the start, and right after the end of my string. This question seemed up my alley: <a href="https://stackoverflow.com/q/13242469/631764">How to use sed/grep to extract text between two words?</a></p>
  
  <p>I managed to match the start (1st match). But for the end (2nd match), it matched the <em>last match</em>.</p>
  
  <p>Sample string:</p>
  
  <pre><code>Bob said that John is nice, which makes Bob nice.
  </code></pre>
  
  <p>I want to get "John is", so I look for the string between "Bob said"</p>
  
  <pre><code>baz="Bob said that John is nice, which makes Bob nice."
  echo `echo "$baz" | sed 's/Bob said that \(.*\) nice/\1/'`
  #result: John is nice, which makes Bob.
  </code></pre>
  
  <p>It matched the <em>last</em> "nice" instead of the <em>next</em> nice. Is there any way to match the next "nice"? </p>