I find that the RegEx coach is a useful tool for checking RegEx.
Also try http://www.regexlib.com/
The following evaluates UK dates and takes account of leap years etc.
^(??:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(??:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(??:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(???:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(??:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(??:0?[1-9])|(?:1[0-2]))\4(??:1[6-9]|[2-9]\d)?\d{2})$