전체 텍스트가 아닌 특정 위치에서 텍스트를 찾을 때도 있다. 그럴 경우 위치 찾기를 사용한다.
위치 찾기 position matching 는 텍스트 문자열 안에서 반드시 일치해야 하는 위치를 지정할 때 사용된다.
The cat scattered his food all over the room.
cat
The cat scattered his food all over the room.
cat이 있는 부분 모두와 일치해버렸다. scattered 사이의 cat은 보통 의도하지 않은 결과일 것이다.
이럴 경우 경계(boundary)를 지정하거나 패턴 앞 뒤의 특정한 위치 혹은 경계를 나타내는 메타 문자를 이용한다.
가장 흔하게 사용하는 것은 \b로 표시하는 단어 경계다. 위 예제에서는 \bcat\b으로 사용할 수 있다. 만약 scattered 사이의 cat만을 원한다면 대문자인 \Bcat\B로 사용한다.
단어 경계는 단어의 위치를 기반으로 찾는데 문자열 경계는 단어 경계와 기능은 비슷하지만 전체 문자열의 시작이나 끝 부분과 패턴을 일치시키고자 할 때 사용한다.
문자열 경계는 캐럿(^)으로 문자열의 시작을, 달러($)로 문자열의 마지막을 나타낸다.
다른 메트 문자의 동작을 변경하는 특수한 메타 문자가 있는데 그 중 하나가 (?m)으로 표현하는 다중행 모드이다. 다중행 모드로 변경하면 줄바꿈 문자를 문자열 구분자로 인식한다.
참고: Ben Forta, Learning Regular Expressions(2018)