Я думаю этот урок объясняет, что именно "независимая, не захватывающая группа" или "атомная группировка"
Регулярное выражение a(bc|b)c
(группа захвата) соответствует abcc и abc . Регулярное выражение a(?>bc|b)c
(атомная группа) соответствует abcc , но не abc .
При применении к abc оба регулярных выражения будут соответствовать a
до a , bc
до bc , а затем c
не сможет совпадать в конце строки. Здесь их пути расходятся. Регулярное выражение с группой захвата запомнило позицию возврата для чередования. Группа откажется от своего матча, b
затем совпадет с b и c
совпадет с c . Совпадение найдено!
Регулярное выражение с атомной группой , однако, вышло из атомной группы после сопоставления bc
. В этот момент все позиции возврата для жетонов внутри группы отбрасываются. В этом примере опция чередования попытаться b
во второй позиции в строке отбрасывается. В результате при сбое c
у механизма регулярных выражений не осталось альтернатив, чтобы попробовать.