Недавно я читал в PCRE - (Perl-совместимые регулярные выражения) документацию и наткнулся на некоторые интересные трюки с регулярным выражением, Поскольку я продолжал читать и истощать себя, я остановился из-за некоторой путаницы в связи с использованием нескольких шаблонов (*...).
Мой вопрос и путаница относятся к (*PRUNE) и (*FAIL)
Теперь для справки (*SKIP) действует как (*PRUNE), за исключением того, что если шаблон не аннулирован, то приступ bumpalong не относится к следующему символу, а к позиции в теме, где (*SKIP).
В документации указано, что (*PRUNE) приводит к сбою совпадения в текущей стартовой позиции в теме, если остальная часть шаблона не соответствует. И он утверждает (*FAIL) синонимом отрицательного утверждения (?!). Принудительный сбой в заданной позиции в шаблоне.
Таким образом, в основном (*FAIL) ведет себя как неудачное отрицательное утверждение и является синонимом (?!)
И (*PRUNE) приводит к сбою совпадения в текущей стартовой позиции в теме, если есть более поздняя ошибка соответствия, которая приводит к обратному слежению, чтобы достичь этого.
Как они отличаются друг от друга, когда дело доходит до точки неудачи?
Можно ли предоставить примеры того, как они реализованы и используются правильно?