r"
(?<!\d)
(?:
(?!0000)[0-9]{4}
(?P<sep1>[-/.])?
(?:
(?:(?(sep1)0?|0)[1-9]|1[0-2]) (?P=sep1) (?:(?(sep1)0?|0)[1-9]|1[0-9]|2[0-8])
|(?:(?(sep1)0?|0)[13-9]|1[0-2]) (?P=sep1) (?:29|30)
|(?:(?(sep1)0?|0)[13578]|1[02]) (?P=sep1) (?:31)
)
|
(?:
[0-9]{2}
(?: