According to NANPA, there are area codes and exchanges that are invalid or reserved and not available for assignment. This would make those phone numbers invalid. For example:

area-codes: 555, N11, N9X, 37X, 96X
exchanges: N11
numbers: 555-0100 thru 555-0199
You could also say 555-1212 is invalid as it is assigned as information for the US.

I changed the tests where 555 as an area code was being used as the assertion will give it a false on the area code and not the exchange as intended.

I split out the regex so it is easier to read.