(или я так думаю) ...
Я использую boost :: xpressive в качестве механизма обработки регулярных выражений для анализа чего-либо, и я получаю segfault. Я подозреваю, что виноваты рекурсивность и мое плохое регулярное выражение, потому что GDB показывает более 300 стековых фреймов. Итак, вот мое (чувствительное к регистру) регулярное выражение в нотации perl / python:
begin([^e]+)e((?:[^b]|b(?!egin))+)
что я ожидаю, чтобы соответствовать
beginHEADER HEREeFOLLOWED BY SOME LONG LONG TEXT THAT GOES UNTIL NEXTbegin
с первым заглавным текстом ( HEADER HERE ) в первой группе и вторым заглавным текстом во второй группе. Я всегда получаю сегфо, если текст, который должен соответствовать группе 2, очень длинный.
Почему это не должно работать?