Описание языка ECMA в Javascript не накладывает требований на конкретную реализацию регулярных выражений, поэтому часть вопроса не является правильно сформулированной. Вы действительно задаетесь вопросом о конкретной реализации в конкретном браузере.
Причина, по которой Perl / Python и т. Д. Используют более медленный алгоритм, заключается в том, что определенный язык регулярных выражений не является действительно регулярными выражениями. Реальное регулярное выражение может быть выражено как конечный автомат, но язык регулярных выражений не зависит от контекста. Вот почему мода просто называть это «регулярным выражением», а не говорить о регулярных выражениях.
Обновление
Да, на самом деле регулярное выражение javascript не является бесплатным контентом регулярно. Рассмотрим синтаксис, используя `{n, m} ', то есть соответствует от n до m принятых регулярных выражений. Пусть d разница d = | n-m |. Синтаксис означает, что существует строка ux d w , которая является приемлемой, но строка ux k> d w , которая не является. Из леммы прокачки для обычных языков следует, что это не обычный язык.
(тьфу. Thinko исправлено.)