^(?:([01]?\d|2[0-3]):([0-5]?\d):)?([0-5]?\d)$
Explanation:
^
(?:
([01]?\d|2[0-3]):
([0-5]?\d):
)?
([0-5]?\d)
$
Some expressions from the regex cover are used here:
http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
EDIT NO. 1
^(?:([01]?\d|2[0-3]):([0-5]?\d):)?([0-5]\d)$
Deleted ?to SSto return false if only one digit is entered within a few seconds.
EDIT No. 2
^([0-5]\d):([0-5]\d):([0-5]\d)$
The part has changed a bit HH, so if the user enters only HHwithout MMand SS, he returns false.
EDIT No. 3
comment
^((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$)