Don't try to use a Regex: they are Text processors, and to validate a date correctly is a real pain: think about leap years for example.
Instead, use DateTime.TryParseExact - if it works it even gives you the data you need to check the date is in range:
DateTime dtBirth;
if (DateTime.TryParseExact(input, "dd-MM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dtBirth))
{
if (dtBirth < DateTime.Now.Date)
{
...
}
}