$re = '/^[1][2][3][4-9]$|^[1][2][4-9][0-9]$|^[1][3-9][0-9][0-9]$|^[2][0-2][0-9][0-9]$|^[2][3][0-3][0-9]$|^[2][3][4][0-5]$/m';
$str = '1233
1234
1343
1500
1234
2332
2340
2345
2346
READABLE
^[1][2][3][3-9]$|
^[1][2][4-9][0-9]$|
^[1][3-9][0-9][0-9]$|
^[2][0-2][0-9][0-9]$|
^[2][3][0-3][0-9]$|
^[2][3][4][0-5]$';
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