$re = '/^(?=.*\h)
(?!.*\h\h)
(?!.*-.*-)
(?=(?:.*\d){9,})
([^(\r\n]*\(?[^)\r\n]+\)?[^()\r\n]+)$/mx';
$str = '
030 12345-67
(030) 12345 55
(030) 12345 44
0351 4640-123
09623 12 3 33
09234 1233
+49 123 1 2 12 31
0049 2123 1231
+1 3519 1231
0 30 / 12 34 56
0 30 / 12 34 56
030 / 12 34 56
0123 / 12312 123
0178 1232231
+490 178 1232231
+36 (351)4740-991
+36(351) 4740-991
09623 12333
+49123123123
01781232231
12-12 -12-12-12
1990 - 2000
1990-2000
+36 (351) 47(40-991
+36 (33) 3)4444
234 234 234 234 234
123 123123
01712123123';
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