Patrón de expresiones regulares para HH: MM: cadena de tiempo SS

Quiero analizar unhh:mm:ss cuerda. Una simple es([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d) que espera2:3:24 o02:03:24 cuerda

Quiero ir un paso más allá y pasar la validación incluso en casos como

si ingresa solo 56, debe aprobarse, ya que 56 puede considerarse como 56 segundos [SS] si ingresa 2: 3 o 02:03 o 02: 3 o 2:03, debería pasar. 2 minutos y 3 segundos [MM: SS] Si ingresa 20:30:12 pase con 20 horas, 30 minutos y 12 segundos [HH: MM: SS] si ingresa 78:12, no pase 78 minutos está mal ...

Básicamente, si se encuentra un ":", considere el número antes de ":" como MM y el número después de ":" como SS. Si se encuentran dos ":", considere como HH: MM: SS

e me ocurrió este patrón.

(^([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)$)|(^([0-5]?\d):([0-5]?\d)$)|(^[0-5]?\d$)

Parece estar funcionando bien. Quería conocer cualquier otra expresión regular más simple, que pueda hacer el trabajo.

Respuestas a la pregunta(4)

Su respuesta a la pregunta