Часто существует более одного способа сопоставления регулярного выражения в определенном месте, для POSIX основных и расширенных регулярных выражений, «лучший» матч определяется следующим образом:
Найдите самый левый матч, если в этом месте возможен только один матч, затем верните его.
Найдите самые длинные из возможных матчей, а также любые связи. Если есть только один такой возможный матч, то верните его.
Если нет отмеченных субэкспрессий, то все остальные альтернативы неотличимы; верните первую из найденных.
Найти матч, который совпал с первым подвыражением в самой левой позиции, наряду с любыми связями. Если есть только на таком матче возможно, то верните его.
Найти матч, который имеет самый длинный матч для первого подвыражения, наряду с любыми связями. Если есть только один такой матч, то верните его.
Повторите шаги 4 и 5 для каждого дополнительного отмеченного подвыражения.
Если еще остается более одного возможного матча, то они неотличимы; верните первый найденный.
Статья The Leftmost Longest Rule раздела Boost.Regex 5.1.2 Regular Expression Syntax может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.