grep с регулярными выражениями, совместимыми с Perl (a grep with Perl-compatible regular expressions.)
MATCHING ERRORS
It is possible to supply a regular expression that takes a very
long time to fail to match certain lines. Such patterns normally
involve nested indefinite repeats, for example: (a+)*\d when
matched against a line of a's with no final digit. The PCRE
matching function has a resource limit that causes it to abort in
these circumstances. If this happens, pcregrep
outputs an error
message and the line that caused the problem to the standard
error stream. If there are more than 20 such errors, pcregrep
gives up.
The --match-limit
option of pcregrep
can be used to set the
overall resource limit; there is a second option called
--recursion-limit
that sets a limit on the amount of memory
(usually stack) that is used (see the discussion of these options
above).