Regular Expression to match most International phone numbers in US notation

So here’s a little RegEx I’ve whipped up that will match all of the following phone number notation styles:

^[\+]?[\d]{0,3}[\-|\s]?[\(]?[\d]{3}[\)|\-]?[\s|\d]?[\d]{2,3}[\-]?[\d]{3,4}$

EDIT: Fellow Google Pluser Bradley Moore took a crack at my expression above and cleaned it up a bit. Here’s the update:

^\+?\d{0,3}[ -]?\(?\d{3}\)?[ -]*\d{3}[ -]*\d{4}$

555-555-5555

555 555-5555

5555555555

15555555555

+15555555555

1-555-555-5555

+1-555-555-5555

+12 555-555-5555

+1 (555) 555-5555

(555) 555-5555