One of the challenges to validating dates is to make sure the user enters a real date, not just one that has the legal elements. (Legal but not real: 31 Feb 2007).
Because you are getting into very complex regular expressions that still don't address the issue of illegal dates, consider another approach. Here are a couple:
1. Use the CustomValidator and only implement the server side validation for this control. Its very easy to use .net's DateTime object to validate the date.
try
{
var DateTime = DateTime.ParseExact(args.Value, "dd MMM yyyy", null);
args.IsValid = true;
}
catch (Exception)
{
args.IsValid = false;
}
2. There are some third party DatePickers (datetextboxes with popup calendars) that offer both the formatting you need, and associated validators that support the format. I'm the author of one, "Peter's Date Package". For others, see this site's Control Gallery (under Resources), www.123aspx.com, and www.411asp.net.