$re = '/^[+|-]?(90.0{6}|[0-8]?[0-9].[0-9]{6})$/m';
$str = '// Valid values
-90.000000
90.000000
1.000000
-1.000000
9.999999
88.888888
77.777777
66.666666
55.555555
44.444444
33.333333
22.222222
11.111111
00.000000
-9.999999
-88.888888
-77.777777
-66.666666
-55.555555
-44.444444
-33.333333
-22.222222
-11.111111
// Invalid values
-90.000001
-90.000010
-90.000100
-90.001000
-90.010000
-90.100000
-91.000000
90.000001
90.000010
90.000100
90.001000
90.010000
90.100000
91.000000
+190.000000
190.000000
-190.000000
-90.00000
-90.0000
-90.000
-90.00
-90.0
-90.
-90
-9
190.000000
90.00000
90.0000
90.000
90.00
90.0
90.
90
9
';
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