$re = '/^(?:(?:\(?(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?(?:\(?0\)?[\s-]?)?)|(?:\(?0))(?:(?:\d{5}\)?[\s-]?\d{4,5})|(?:\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3}))|(?:\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4})|(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}))(?:[\s-]?(?:x|ext\.?|\#)\d{3,4})?$/m';
$str = '# Using patterns from here:
# http://www.area-codes.org.uk/formatting.php
# Regex found here:
# https://stackoverflow.com/a/31589527/863062
01999 99999
01999 999999
0119 999 9999
0191 999 9999
013873 99999
015242 99999
015394 99999
015395 99999
015396 99999
016973 99999
016974 99999
016977 9999
016977 99999
017683 99999
017684 99999
017687 99999
019467 99999
029 9999 9999
0399 999 9999
05999 999999
07999 999999
0800 999999
0899 999 9999
0999 999 9999
+441999 99999
+441999 999999
+44119 999 9999
+44191 999 9999
+4413873 99999
+4415242 99999
+4415394 99999
+4415395 99999
+4415396 99999
+4416973 99999
+4416974 99999
+4416977 9999
+4416977 99999
+4417683 99999
+4417684 99999
+4417687 99999
+4419467 99999
+4429 9999 9999
+44399 999 9999
+445999 999999
+447999 999999
+44800 999999
+44899 999 9999
+44999 999 9999
+44 1999 99999
+44 1999 999999
+44 119 999 9999
+44 191 999 9999
+44 13873 99999
+44 15242 99999
+44 15394 99999
+44 15395 99999
+44 15396 99999
+44 16973 99999
+44 16974 99999
+44 16977 9999
+44 16977 99999
+44 17683 99999
+44 17684 99999
+44 17687 99999
+44 19467 99999
+44 29 9999 9999
+44 399 999 9999
+44 5999 999999
+44 7999 999999
+44 800 999999
+44 899 999 9999
+44 999 999 9999
00441999 99999
00441999 999999
0044119 999 9999
0044191 999 9999
004413873 99999
004415242 99999
004415394 99999
004415395 99999
004415396 99999
004416973 99999
004416974 99999
004416977 9999
004416977 99999
004417683 99999
004417684 99999
004417687 99999
004419467 99999
004429 9999 9999
0044399 999 9999
00445999 999999
00447999 999999
0044800 999999
0044899 999 9999
0044999 999 9999
0044 1999 99999
0044 1999 999999
0044 119 999 9999
0044 191 999 9999
0044 13873 99999
0044 15242 99999
0044 15394 99999
0044 15395 99999
0044 15396 99999
0044 16973 99999
0044 16974 99999
0044 16977 9999
0044 16977 99999
0044 17683 99999
0044 17684 99999
0044 17687 99999
0044 19467 99999
0044 29 9999 9999
0044 399 999 9999
0044 5999 999999
0044 7999 999999
0044 800 999999
0044 899 999 9999
0044 999 999 9999';
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