여러 대안 중 하나를 매칭하기
파이프 문자 |는 대안을 나눠. cat|dog는 cat 또는 dog를 매칭하고, 대부분의 백트래킹 엔진은 왼쪽 대안부터 시도해.
대안의 순서가 결과를 바꿔
Python, JavaScript, PCRE 같은 엔진은 가장 긴 대안이 아니라 먼저 성공한 대안을 선택해. cat|cats를 cats에 적용하면 cat에서 멈춰. 더 긴 대안을 우선하려면 cats|cat처럼 앞에 둬. POSIX awk의 최장 일치 규칙은 이와 다르니 엔진 방언도 확인해야 해.
주변 문맥이 있다면 대안을 묶어
my cat|dog는 my cat 또는 dog를 뜻해. my 뒤에 고양이나 개가 온다는 뜻이라면 my (?:cat|dog)라고 묶어야 해.
한 글자 대안은 문자 클래스가 더 단순해
여러 글자 문자열에는 선택을 쓰고, 한 글자 후보만 나열할 때는 [abcde]처럼 문자 클래스로 표현해. 의도가 분명하고 패턴도 짧아져.