$re = '/((\+46|0046|0)7[02369]+[\d]{7})|((\+45|0045|0)(([2][0-9]|31|40|41|42|50|51|52|53|60|61|71|81|91)+[\d]{6}))|((\+47|0047|0)(([4]|[9])+[\d]{7}))|((\+358|00358|0)(([4][0-9])|457|50)+[\d]{7})/m';
$str = '+3584571234567';
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