35.3.5 Проблемы с регулярными выражениями

Реализация регулярных выражений Emacs, как и многие подобные ей, в целом надежна, но иногда может вызывать проблемы двумя способами: сопоставление может исчерпать внутреннее пространство стека и вызвать ошибку, а также может занять много времени для завершения. Советы ниже сделают эти симптомы менее вероятными и помогут облегчить проблемы, которые все же возникают.

Если вы столкнулись с переполнением стека регулярных выражений, несмотря на соблюдение вышеуказанных советов, не бойтесь выполнять сопоставление в нескольких вызовах функций, каждый из которых использует более простое регулярное выражение, где откат может быть легче ограничен.

Функция: re--describe-compiled regexp &optional raw

Чтобы помочь в диагностике проблем в ваших регулярных выражениях или в самом движке регулярных выражений, эта функция возвращает строку, описывающую скомпилированную форму regexp. Чтобы понять ее, может потребоваться прочитать как минимум описание типа re_opcode_t в файле src/regex-emacs.c в исходном коде Emacs.

В настоящее время она может дать осмысленное описание только если Emacs был скомпилирован с --enable-checking.