Si estás trabajando con PHP, es mejor que uses strptime en vez de expresiones regulares.
Código PHP:
Ver originalif (strptime("tu cadena de entrada", "%H:%M:%S") !== false)) {
echo("La fecha es válida")
}
Si una función incluida en el lenguaje hace lo que necesitás, no deberías implementar soluciones propias.
Saludos.