/^[\.-)( ]*([0-9]{3})[\.-)( ]*([0-9]{3})[\.-)( ]*([0-9]{4})$/
Should accomplish what you are trying to do.
The first part ^ means the "start of the line" which will force it to account for the whole string.
The [\.-)( ]* that I have in there mean "any period, hyphen, parenthesis, or space appearing 0 or more times".
The ([0-9]{3}) clusters match a group of 3 numbers (the last one is set to match 4)
Hope that helps!