title: grep with regex for phone number
body: <p>I would like to get the phone numbers from a file. I know the numbers have different forms, I can handle for a single one, but don't know how to get a uniform regex. For example</p>
  
  <ol>
  <li><p><code>xxx-xxx-xxxx</code></p></li>
  <li><p><code>(xxx)xxx-xxxx</code></p></li>
  <li><p><code>xxx xxx xxxx</code></p></li>
  <li><p><code>xxxxxxxxxx</code></p></li>
  </ol>
  
  <p>I can only handle 1, 2, and 4 together</p>
  
  <pre><code>grep '[0-9]\{3\}[ -]\?[0-9]\{3\}[ -]\?[0-9]\{4\}' file
  </code></pre>
  
  <p>Is there any one single regex can handle all of these four forms?</p>