Expresión regular para que coincida con los números de teléfono de Estados Unidos.

La expresion regular^((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}$ coincide con las cadenas de la formaXXX-XXX-XXXX yXXX-XXXX (¿Me estoy perdiendo algo?).

Sin embargo, no coincide(XXX) XXX-XXXX y(XXX) XXX-XXX-XXXX también (que lo necesito para que coincida).

¿Puedes ayudarme a arreglarlo para que coincida con los formatos?
     XXX-XXX-XXXX, XXX-XXXX, (XXX) XXX-XXXX, (XXX) XXX-XXXX
sin hacer que coincida con otros formatos de cadena que no quiero?

Respuestas a la pregunta(5)

Su respuesta a la pregunta