关于正则表达式的或运算

我是个新手,想做个时间的check
^0?\d{1}|^1\d{1}|^2[2-3]{1}:[0-5]?[0-9]{1}:[0-5]{1}[0-9]{1}
请问为什么
^0?\d{1}|^1\d{1}|^2[2-3]{1}之间的或运算不起作用呢,请指点下

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

这样即可 用括号隔开