title: How to fetch names using RegEx for given pattern?
body: <p>I'm trying to fetch below patterns from the text using RegEx:</p>
  
  <pre><code>John Doe
  JOHN DOE
  Sam John Watson
  Sam John Lilly Watson
  SAM JOHN WATSON
  SAM JOHN LILLY WATSON
  </code></pre>
  
  <p>Input Data only contains single line and I need to find above patterns in that.</p>
  
  <p><strong>More about Pattern</strong></p>
  
  <ul>
  <li>Each word will start with a Uppercase letter and followed by either Upper or Lowercase</li>
  <li>Minimum 2 words</li>
  <li>Maximum 4 words</li>
  <li>Words will include only A-Z or a-z chars</li>
  </ul>
  
  <p>What I Tried:</p>
  
  <pre><code>import re
  re.findall("[A-Z][A-Za-z]+ [A-Z][A-Za-z]+ [A-Za-z]* [A-Za-z]*", text)
  </code></pre>
  
  <p>Which will correctly identifies input like:</p>
  
  <pre><code>Sam Peters John Doe
  SAM WINCH DAN BROWN
  </code></pre>
  
  <p>but fails on input with less than 4 words.</p>