Try this:
^((?<hours>([012]?\d)|(3[01])):)?(?<minutes>[0-5]?\d)$
You have some problems with your regex. Mostly, you're using *
where you shouldn't. This opens the door to many errors. For example, it matches the string "0010203333333"
.
Kobi
2010-01-18 09:15:39