Вас могут заинтересовать такие статьи, как: Сопоставление регулярных выражений может быть простым и быстрым или Понимание регулярных выражений .
Это, увы, легко написать неэффективные RE, которые могут сравнительно быстро совпадать при успехе, но могут искать часы, если совпадений не найдено, потому что движок тупо пробует длинное совпадение на каждой позиции длинной строки! *
Есть несколько рецептов для этого, например, якорение, когда это возможно, избегание жадности, если это возможно, и т. Д.
Обратите внимание, что гигантское выражение электронной почты не является новым и не обязательно медленным: короткое, простое выражение может быть медленнее, чем более запутанное!
Обратите также внимание, что в некоторых ситуациях (например, в случае электронной почты) может быть более эффективным (и поддерживаемым!) Использование комбинации регулярных выражений и кода для обработки случаев, таких как разбиение в @, обработка различных случаев (сначала часть начинается с "или нет, вторая часть - это IP-адрес или домен и т. д.).
Регулярные выражения не являются окончательным инструментом, способным сделать все, но это очень полезный инструмент, который стоит освоить!