$re = '/(?:\+?\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{3,4}(?!\d)/m';
$str = 'my number is (123)-416-567
1 321 124 7889 is valid
why not taking 987-012-6782
120 967 3256 is correct
call at 888 969 9919
please text at 1 647 989 1213';
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