Revisalo, a mí sí me lo valida, en lo que te he pegado la propiedad Display estaba a None porque usaba un Validation Summary, si no lo has cambiado no te saldría nada, prueba con esto:
Código:
<asp:regularexpressionvalidator id="RegularExpressionValidator2" runat="server"
ControlToValidate="TextBoxFecha"
ErrorMessage='El campo "Fecha" contiene un valor no válido'
ValidationExpression="^(((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}|\d))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}|\d))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}|\d))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00|[048])))$">
</asp:regularexpressionvalidator>
A ver si ahora hay suerte. Saludos