If you want to have zero padding as optional, as well as second jumps:
/^((0?[1-9])|(1[0-2])):[0-5]\d:(([0-5]\d)|(60)) [AP]M$/
Breakdown:
(0?[1-9]|1[0-2]) 1-9 (with an optional start zero) or 10-12
[0-5][0-9] 00-59 (0-5 for the first digit, 0-9 for the second)
([0-5][0-9])|(60) Jumping a second
[AP]M AM / PM
mynameiscoffey
source share