1. ^
  2. (?:
  3.     (?:
  4.         [\+]?
  5.         (?<CountryCode>
  6.             [\d]{1,3}
  7.             (?:
  8.                 [ ]+
  9.                 |
  10.                 [\-.]
  11.             )
  12.         )
  13.     )?
  14.     [(]?
  15.     (?<AreaCode>
  16.         [\d]{3}
  17.     )
  18.     [\-/)]?
  19.     (?:[ ]+)?
  20. )?
  21. (?<Number>
  22.     [a-zA-Z2-9][a-zA-Z0-9 \-.]{6,}
  23. )
  24. (?:
  25.     (?:
  26.         [ ]+
  27.         |
  28.         [xX]
  29.         |
  30.         (i:ext[\.]?)
  31.     ){1,2}
  32.     (?<Ext>
  33.         [\d]{1,5}
  34.     )
  35. )?
  36. $