--TEST-- abusing preg_match() --FILE-- (?P(\d{2})?\d\d) - (?P(?:\d\d|[a-zA-Z]{2,3})) - (?P[0-3]?\d)) ~x', $s, $m)); var_dump($m); } ?> --EXPECT-- int(1) array(10) { [0]=> string(10) "2006-05-13" ["date"]=> string(10) "2006-05-13" [1]=> string(10) "2006-05-13" ["year"]=> string(4) "2006" [2]=> string(4) "2006" [3]=> string(2) "20" ["month"]=> string(2) "05" [4]=> string(2) "05" ["day"]=> string(2) "13" [5]=> string(2) "13" } int(1) array(10) { [0]=> string(8) "06-12-12" ["date"]=> string(8) "06-12-12" [1]=> string(8) "06-12-12" ["year"]=> string(2) "06" [2]=> string(2) "06" [3]=> string(0) "" ["month"]=> string(2) "12" [4]=> string(2) "12" ["day"]=> string(2) "12" [5]=> string(2) "12" } int(1) array(10) { [0]=> string(8) "12-Aug-8" ["date"]=> string(8) "12-Aug-8" [1]=> string(8) "12-Aug-8" ["year"]=> string(2) "12" [2]=> string(2) "12" [3]=> string(0) "" ["month"]=> string(3) "Aug" [4]=> string(3) "Aug" ["day"]=> string(1) "8" [5]=> string(1) "8" }