Dear grep'pers, since I updated from 2.16 to 2.21, several of my "check list of files for bad filenames"-style grep expressions fail like this: grep: internal PCRE error: -27 (one of the failing examples follows at the end of the mail, example filename-list attached) Researching this, I found that -27 is PCRE_ERROR_JIT_STACKLIMIT. Apparently I exceed the 512 K JIT-stack-limit which is hardcoded in grep with several of my regexps. As using the JIT can not be turned off at runtime, nor can the stacksize be controlled without patching + recompiling, this breaks previously working expressions for me, so I consider this a new regression, introduced with b06f7a29a58bbdd5866afc1e92dba3fdc9e2ed59 . I tested that increasing the stack-size to 1 M fixes the problem for me. A better fix could maybe consist of a better error message, allowing stack-size control at runtime and / or making JIT optional at runtime. Reproducer, using the attached file (which is generated by a find command, of course - only 637 files with absolute paths in plain ASCII): $ LANG=C grep -P -n '^([/](?!/)|[^/])*~/.*' pcrejit.txt grep: internal PCRE error: -27 Cheers, Oliver