This hasn't come up (yet) but I thought about it today so I'll talk about it now. My latest date regexps validate all Anno Domini (A.D.) dates. I want to point out that the dates in the past being validated are historical dates using both the Julian and Gregorian Calendars and not dates of a proleptic Gregorian Calender. You can follow the preceding link if you want more detail but basically what this means for the regexps is the Gregorian Leap Year rules are not being validated retroactively. In other words the leap year rule for centuries in the Gregorian calendar are not applied for prior to A.D.1600. The regexps all assume conversion for the Julian Calendar in 1582 to the Gregorian. I mention it in the comments of the VB.net versions, and will do so again here, the missing days for 1752 should not be excluded but they are just as an example and should be removed if you want to be correct for the 1582 conversion.
I mention this because I noticed that VB's isDate function uses a proleptic Gregorian Calender. meaning the leap year rules are being applied to dates prior to the rules' existence. At first I thought this was just an oversite and error but I see that it's acceptable in some circles
So what this means is my regexps will validate any date on or before October 4, 1582 as a Julian date, with leap years every four years(starting with year 8). Meaning every century in that time frame was a leap year.
Any date on or after October 15, 1582 is considered a Gregorian date and evaluated as such.
So the regex will accept valid dates that your code may not. Not accounting for the different times in converting to the Gregorian calendar the regexps are more historically accurate than some existing functions and algorithms out there now. And they could be modified to work with a different conversion date for different locales.
For example change
(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00)
in the mm/dd/yyyy expresion to
(?:(?:1[^0-8]|[2468][^048]|[3579][^26])00)
would make the regex accept dates based on the
British Empires conversion to the Gregorian calendar in 1752.
The missing days for 1582 should be removed and the one for 1752 left in, in that case