title: Match optional string when random strings present between groups
body: <p>I am very new to python and I was having trouble with matching optional strings when can be any number of strings between the groups. Here is an example of what I am looking for:</p>
  
  <pre><code>'The quick brown fox jumps over the lazy dog'
  </code></pre>
  
  <p>I want the word following <code>'brown'</code> and if the word <code>'lazy'</code> is present I want the word following it as well, i.e:</p>
  
  <pre><code>'The quick brown fox jumps over the lazy dog'      --&gt; ('fox', 'dog')
  'The quick brown fox'                              --&gt; ('fox', '')
  'The quick brown fox dfjdnjcnjdn vvvv lazy mouse'  --&gt; ('fox', 'mouse')
  'The quick brown fox lazy dog'                     --&gt; ('fox', 'dog')
  </code></pre>
  
  <p>Here is what I tried, but it is not working</p>
  
  <pre><code>re.findall(r'brown (\S+)(.*?)(lazy )?(\S+)?', str)
  </code></pre>
  
  <p>What am I doing wrong and how to fix this?</p>