Unrelated to the immediate problem, but you probably want ( |-|\.) instead of ( |-|.) near the start of your match, since the dot has special meaning within a regex and will match any character (almost. see perlre).
This means that currently that part of your regex is equivalent to just (.), and will happily match something like 8003555-1234
In reply to Re^3: Phone Number Regular Expression
by Crackers2
in thread Phone Number Regular Expression
by lev36
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |