수량자는 그룹 전체에 적용돼
(ab)+는 ab 묶음을 한 번 이상 반복하고, (\d{3})?는 세 자리 숫자 그룹 전체를 선택적으로 만들어. 여러 글자를 하나의 반복 단위로 묶고 싶을 때 그룹을 써.
반복된 캡처가 남기는 값
캡처 그룹에 수량자를 붙이면 그룹 값에는 마지막 반복만 남아. (ab)+가 ababab 전체를 매칭해도 그룹 1은 마지막 ab만 담아.
반복 전체를 캡처하려면 ((ab)+)처럼 바깥 그룹을 하나 더 둬. 그러면 바깥 그룹은 ababab를, 안쪽 그룹은 마지막 ab를 담아.
값이 필요 없다면 비캡처 그룹
수량자의 범위만 묶고 캡처 값은 필요하지 않다면 (?:...)를 써. (?:ab)+는 의도를 분명히 보여 주고, 마지막 반복만 캡처되는 뜻밖의 결과도 피하게 해. 그룹의 세부 동작은 트랙 4에서 더 자세히 다룰 거야.