正規表現中の \d は数値を表します。[0-9]と同等です。
正規表現中の {} は前の文字が続く桁数を表します。\d{2} は2桁の数値のパターンになります。
(A|B)はAまたはBのパターンになります。
? は前の文字が1つもしくは存在しないという意味のパターンになります。[0-9]{3}-?[0-9]{4} のパターンは市外局番と市内局番の間のハイフンがあってもなくても良いことになります。