Если вы хотите, чтобы заполнение нулями было необязательным, а также дополнительные секунды:
/^((0?[1-9])|(1[0-2])):[0-5]\d:(([0-5]\d)|(60)) [AP]M$/
Распределение:
(0?[1-9]|1[0-2])
1-9 (с необязательным начальным нулем) или 10-12
[0-5][0-9]
00-59 (0-5 для первой цифры, 0-9 для второй)
([0-5][0-9])|(60)
високосные секунды
[AP]M
AM / PM