I end up needing to reference a bunch of useful expressions in my day to day work. In an effort to stop thinking about writing them, as I loathe writing regular expressions; I have started to maintain this list.
No valid SSN begins with 666. Ignore them.
^((?!000)(?!666)([0-6]\d{2}|7[0-2][0-9]|73[0-3]|7[5-6][0-9]|77[0-1]))(\s|\-)((?!00)\d{2})(\s|\-)((?!0000)\d{4})$