$re = '/^(((\*|(\d\d?))(\/\d\d?)?)|(\d\d?\-\d\d?))(,(((\*|(\d\d?))(\/\d\d?)?)|(\d\d?\-\d\d?)))*\s(((\*|(\d\d?))(\/\d\d?)?)|(\d\d?\-\d\d?))(,(((\*|(\d\d?))(\/\d\d?)?)|(\d\d?\-\d\d?)))*\s(((\*|(\d\d?))(\/\d\d?)?)|(\d\d?\-\d\d?))(,(((\*|(\d\d?))(\/\d\d?)?)|(\d\d?\-\d\d?)))*\s(\?|(((\*|(\d\d?L?))(\/\d\d?)?)|(\d\d?L?\-\d\d?L?)|L|(\d\d?W))(,(((\*|(\d\d?L?))(\/\d\d?)?)|(\d\d?L?\-\d\d?L?)|L|(\d\d?W)))*)\s(((\*|(\d|10|11|12|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))(\/\d\d?)?)|((\d|10|11|12|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)\-(\d|10|11|12|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)))(,(((\*|(\d|10|11|12|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))(\/\d\d?)?)|((\d|10|11|12|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)\-(\d|10|11|12|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))))*\s(((\*|([0-7]|MON|TUE|WED|THU|FRI|SAT|SUN)L?)(\/\d\d?)?)|(([0-7]|MON|TUE|WED|THU|FRI|SAT|SUN)L?\-([0-7]|MON|TUE|WED|THU|FRI|SAT|SUN)L?)|([0-7]|MON|TUE|WED|THU|FRI|SAT|SUN)L?#([1-5]))(,(((\*|([0-7]|MON|TUE|WED|THU|FRI|SAT|SUN)L?)(\/\d\d?)?)|(([0-7]|MON|TUE|WED|THU|FRI|SAT|SUN)L?\-([0-7]|MON|TUE|WED|THU|FRI|SAT|SUN)L?)|([0-7]|MON|TUE|WED|THU|FRI|SAT|SUN)L?#([1-5])))*$/mi';
$str = '* * * * * *
* * * * * *
* * * * * *
3 * * * * *
3 * * * * *
3 * * * * *
3 * * * * *
3 * * * * *
5/15 * * * * *
5/15 * * * * *
5/15 * * * * *
5/15 * * * * *
5/15 * * * * *
7,19 * * * * *
7,19 * * * * *
7,19 * * * * *
2-45 * * * * *
2-4 * * * * *
42-45 * * * * *
42-45 * * * * *
42-45 * * * * *
42-45 * * * * *
42-63 * * * * *
0 3 * * * *
0 3 * * * *
0 0/15 * * * *
0 0/15 * * * *
0 0/15 * * * *
0 0/15 * * * *
0 7,19 * * * *
0 7,19 * * * *
0 * 3 * * *
0 * 3 * * *
0 * 3 * * *
0 * 0/15 * * *
0 * 0/15 * * *
0 * 0/15 * * *
0 * 0/15 * * *
0 * 0/15 * * *
0 * 7,19 * * *
0 * 7,19 * * *
0 * 7,19 * * *
0 1 * * * *
0 0 * * * *
0 * * 3 * *
0 * * 3 * *
0 * * 3 * *
0 * * 3 * *
0 0 0 1/15 * *
0 0 0 1/15 * *
0 0 0 1/15 * *
0 0 0 1/15 * *
0 0 0 7,19 * *
0 0 0 7,19 * *
0 0 0 7,19 * *
0 0 0 7,19 * *
0 0 0 L * *
0 0 0 L * *
0 0 0 3L * *
0 0 0 3L * *
0 0 0 9W * *
0 0 0 9W * *
0 0 0 9W * *
0 0 0 9W * *
0 0 0 9X */2 *
0 0 0 9#2 * *
0 0 0 1 5 *
0 0 0 1 5/2 *
0 0 0 1 5/2 *
0 0 0 1 5/10 *
0 0 0 1 3,7,12 *
0 0 0 1 3,7,12 *
0 0 0 1 3,7,12 *
0 0 0 1 MAR,JUL,DEC *
0 0 0 1 MAR,JUL,DEC *
0 0 0 1 MAR,JUL,DEC *
0 0 0 1 ? *
0 0 0 * * 3
0 0 0 * * 3
0 0 0 * * 3
0 0 0 * * 3
0 0 0 * * 3/2
0 0 0 * * 3/2
0 0 0 * * 3/2
0 0 0 * * 3/2
0 0 0 * * 1,5,7
0 0 0 * * 1,5,7
0 0 0 * * 1,5,7
0 0 0 * * MON,FRI,SUN
0 0 0 * * MON,FRI,SUN
0 0 0 * * MON,FRI,SUN
0 0 0 * * 5L
0 0 0 * * 5L
0 0 0 * * 5L
0 0 0 * * FRIL
0 0 0 * * 5W
0 0 0 * * 5?3
0 0 0 * * 0
0 0 0 * * 0L
0 0 0 * * 0#2
0 0 0 * * 7
0 0 0 * * 7L
0 0 0 * * 7#2
0 0 0 * * 5#3
0 0 0 * * 5#3
0 0 0 * * 7#1
0 0 0 * * 7#1
0 0 0 * * 3#5
0 0 0 * * WED#5
* * 5-1 * * *';
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