Великолепная статья. Еще было бы неплохо написать про «темную» сторону regexp (backtracking) и про полезные инструменты для создания:
1) RegexBuddy — отлично подходит для отладки и оптимизации выражений.
2) Графический онлайн визуализатор выражений
Вот эта фраза про «теперь у вас две проблемы» — реально уже достала. И да, регэкспы — это для адекватного программера -Must Know. А также ИМХО еще одно из того, о чем писал Джоэл (имея в виду C, указатели и арифметику указателей): «К сожалению, у большинства людей отсутствует некий отдел мозга, отвечающий за понимание указателей, а тем более арифметических операций с ними». К чему я это? С регэкспами так же.
Много реализаций регэкспов (например, в Java) таковы, что пользоваться ими серьезно нельзя. И вот это надо понимать начинающему программисту регэкспов.
Я бы сказал, что в JavaScript реализация такова, что для сложной обработки текста ей пользоваться невозможно. Ни именованных групп, ни комментариев, ни «расширенного» синтаксиса, да что там — банального look-behind нет. Закономерно, что на выходе write-only код и юмор про «теперь две проблемы».
Регэкспы, как и любой сложный инструмент, уместны в меру. Подход «нафиг мне изучать ваш экскаватор, я тут лопатой за 2 часа всё поправлю» порождает кучу if-ок и «лапшичный» код.
А расширенный синтакис и look-behind, да, повышает вашу job-security.
Выразительный JavaScript: Регулярные выражения