$re = '/^(([NnSs\+-])?([0-8]?\d(\.\d*)?|90) *([°˚º^~*]*) *([NnSs\+-])*)([,:;\s|\/\\\\-]+)(([EeWw\+-]*)([0]?\d?\d(\.\d*)?|1[0-7]\d(\.\d*)?|180) *([°˚º^~*]*) *([EeWw\+-]*))$/m';
$str = '53.651231°N 113.641376°W
57.084599°N 2.783300°W';
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