Here's something to try:
^\(?\d{3}\)?-?\d{3}-?\d{4}$
Basically, this matches on 10 digits, with optional parantheses around the first 3 and optional dashes between the 3 sections. Note that partial parantheses are not disallowed: so (800-312-7569 is valid according to this regex, as is 800)3121123