$re = '/^\s*(?P<IgnoreBracket>\(?)(?P<area_code>\d{3}?|\d{3})(?P<IgnoreBracket2>\s|\)?)(?P<IgnoreSpecChar>\s*?|-?)(?P<first_three>\d{3})(?P<IgnoreSpecChar1>-?)(?P<last_four>\d{4})\s*?/m';
$str = '(404-555-1212
^(?P<IgnoreBracket>\\(?)(?P<area_code>\\d{3}?|\\d{3})(?P<IgnoreBracket2>\\)?)(\\s*?|-?)(?P<first_three>\\d{3})-?(?P<last_four>\\d{4})\\s*?
';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php