Word 와 비-word 사이 invisible 위치
\b 는 word 글자 (\w) 와 비-word 글자 사이 경계 매칭하는 zero-width assertion. 소비 안 하고 "이 위치가 word boundary" 라고 주장만.
\bcat\b 는 The cat sat 의 단어 cat 매칭, concatenate 의 cat 안 매칭. concatenate 에선 c 앞에 다른 word 글자 (boundary 없음), t 뒤에도 다른 word 글자 (boundary 없음).
Boundary 발생 위치
\b 매칭 위치:
- 문자열 시작, 첫 글자가 word 글자면.
- 문자열 끝, 마지막 글자가 word 글자면.
- word 와 비-word 글자 사이 (어느 순서든).
\B 는 inverse — "word boundary 가 아님." 단어 *안에서* 만 매칭에 유용: \Bcat\B 는 concatenate 의 cat 매칭, The cat sat 의 안 함.
다시 Unicode 주의
Word boundary 는 \w 정의 의존, 그건 flavor + 플래그에 따라 다름. ASCII-only 모드면 \b 가 한글 텍스트를 단어로 인식 안 함, 안녕 에 ASCII 모드의 \w 글자 없으니까. Unicode 모드 (Python 기본; JS 의 u 플래그) 로 전환하면 동작.