캡처 그룹, 명명 그룹, 그리고 lookaround 를 정리합니다.
괄호 (...) 는 캡처 그룹을 만듭니다. 매칭된 부분을 조각으로 따로 꺼내거나, 치환식에서 $1·$2 로 재사용할 수 있습니다. 그룹을 만들되 캡처는 원치 않으면 (?:...) 로 비캡처 그룹을 씁니다.
(?<name>...) 는 명명 캡처 그룹입니다. 번호 대신 이름으로 접근할 수 있어 패턴이 길어질수록 가독성이 좋아집니다. 치환에서는 $<name> 으로 참조합니다.
전방탐색 (?=...) 은 뒤에 특정 패턴이 오는 위치를, (?!...) 은 오지 않는 위치를 매칭하되 그 부분을 소비하지 않습니다. 후방탐색 (?<=...) 과 (?<!...) 은 앞쪽을 같은 방식으로 검사합니다.
lookaround 는 "소비하지 않는 조건"이라는 점이 핵심입니다. 강한 비밀번호 검사처럼 여러 조건을 겹쳐 요구할 때, 또는 특정 문맥에서만 치환하고 싶을 때 강력합니다.