정규식에는 단일 표준이 없습니다. POSIX, PCRE, Perl, 파이썬, 자바스크립트, grep, sed 등 엔진마다 문법과 지원 기능이 미묘하게 다릅니다. 그래서 한 곳에서 잘 돌던 패턴이 다른 도구로 옮기면 깨지는 일이 흔하죠. John D. Cook은 '모든 곳에서 통하는' 정규식을 쓰려면 화려한 확장 기능 대신 모든 엔진이 공통으로 지원하는 최소 부분집합만 사용하라고 조언합니다. 핵심 인사이트는 이렇습니다. 첫째, \d, \w, \b 같은 약어는 엔진마다 유니코드 처리나 의미가 달라질 수 있으니, 이식성이 중요하면 [0-9], [A-Za-z0-9_]처럼 명시적 문자 클래스로 풀어쓰는 편이 안전합니다. 둘째, 전방·후방 탐색(lookahead/lookbehind), 이름 붙은 그룹, 비탐욕 수량자 같은 고급 기능은 지원 여부가 갈리므로 피하는 게 좋습니다. 셋째, 같은 패턴이라도 도구가 BRE인지 ERE인지에 따라 괄호와 +, ? 같은 메타문자 이스케이프 규칙이 달라집니다. 결국 '강력함'과 '이식성'은 트레이드오프입니다. 평생 한 언어에서만 쓸 패턴이라면 그 엔진의 기능을 마음껏 쓰고, 여러 환경을 오갈 패턴이라면 공통 분모로 보수적으로 작성하는 것이 실무에서 시간을 아끼는 길입니다.