title: Regex | Empty String match | Python 3.4.0
body: <p><strong>My Code:</strong></p>
  <pre><code>import re
  
  #Phone Number regex
  phoneRegex = re.compile(r'''(
  (\d{3}|\(\d{3}\))?
  (\s|-|\.)?                       # separator
  (\d{3})                          # first 3 digits
  (\s|-|\.)                        # separator
  (\d{4})                          # last 4 digits
  (\s*(ext|x|ext.)\s*(\d{2,5}))?   # extension
  )''', re.VERBOSE)
  
  phoneRegex.findall('Phone: 800.420.7240 or +1 415.863.9900 (9 a.m. to 5 p.m., M-F, PST)')
  </code></pre>
  <p><strong>Output:</strong></p>
  <pre><code>[('800.420.7240', '800', '.', '420', '.', '7240', '', '', ''), ('415.863.9900', '415', '.', '863', '.', '9900', '', '', '')]
  </code></pre>
  <p><strong>Questions:</strong></p>
  <ol>
  <li>Why are empty strings included in the match?</li>
  <li>The empty strings are matched from what positions of the string?</li>
  <li>What are the conditions for empty strings to be matched?</li>
  </ol>
  <p><em><strong>P.S.</strong></em>
  The empty strings are not included in the match when I use the same regex on <a href="https://regex101.com/" rel="nofollow noreferrer">https://regex101.com/</a><br/>
  Also, I just started learning regex a few days ago, so I'm sorry if my questions aren't good enough.</p>