Поиск вперед и назад без возврата
Обновлен: Ноябрь 2007
При положительном просмотре вперед и назад возврат не выполняется. То есть, их содержимое рассматривается так же, как и содержимое не возвращающейся группы (?> ).
Поскольку просмотр вперед и поиск назад всегда имеет нулевую ширину, то бектрекинг возможен только в том случае, когда захватываемые группы появляются внутри положительного просмотра вперед или назад. Например, выражение (?=(a*))\1a никогда не найдет соответствие, поскольку группа 1, которая определена внутри просмотра вперед, предполагает столько символов "a", сколько их имеется подряд, а \1a требует еще один символ "a". Так как выражение просмотра вперед не предусматривает возврат, то обработчик соответствия не будет выполнять повторный поиск группы 1 с меньшим количеством символов "a".
Дополнительные сведения о конструкциях групп, просмотре вперед и назад см. в разделе Конструкции группировки.