詳説正規表現の第2版買いました。高くて泣きそうです。
んでp.25の時刻の正規表現のやつで

  (1[012]|[1-9]):[0-5][0-9] (am|pm)

とあったので試しましたが

$ echo "1:23 am" | egrep '(1[012]|[1-9]):[0-5][0-9] (am|pm)'
 1:23 am
$ echo "11:23 am" | egrep '(1[012]|[1-9]):[0-5][0-9] (am|pm)'
 11:23 am
$ echo "31:23 am" | egrep '(1[012]|[1-9]):[0-5][0-9] (am|pm)'
 31:23 am
$ egrep --version
 egrep (GNU grep) 2.5.1

となって困ってます。どこ間違ってますか?