in reply to regular expression help

You're trying to make a regex do the work of a subroutine. The way to do leap day checks requires division checks on the year, but you only need to worry about that if the month February and the day is 29.

Date::Calc (mentioned above) has a check_date() function that can do exactly what you are looking for (provided you split the date into year, month and day first).

Ivan Heffner
Sr. Software Engineer, DAS Lead
WhitePages.com, Inc.