Мне трудно себе представить каким способом вы тестировали это регулярное выражение, но оно начинает срабатывать уже при шестизначном значении, например 232323, а максимально можно ввести 14 цифровых знаков. из за того что у вас стоят знаки ? после групп, которые допускают что эта группа может появиться 1 или 0 раз, из-за этого можно вводить просто кучу цифр.
Я лично сделал вот такое бы выражение, не такое запутанное как ваше
^\+?[78][-\(]?\d{3}\)?-?\d{3}-?\d{2}-?\d{2}$
Оно уж точно не пропустит лишних цифр, и допускает варианты:
89103123167
+7-910-221-22-22
+7(910)-221-22-22
ну и в таком духе