여덟 플래그
ES2024 기준 JavaScript 정규식 플래그:
i— case-insensitiveg— global (모든 매칭 찾기;matchAll와replaceAll활성)m— multiline (^와$가 줄 경계 매칭)s— dotAll (.가 줄바꿈 매칭)u— Unicode (패턴과 문자열을 Unicode code point 로 처리)y— sticky (lastIndex에서만 매칭 시작)d— has indices (매칭 객체에 그룹 시작/끝 offset 포함; ES2022+)v— Unicode set (확장 Unicode 기능; ES2024)
플래그 결합
플래그가 어떤 순서로든 concat: /pattern/gimsu. 순서 무관; 중복은 에러.
Unicode 플래그 (/u)
/u 없으면 JavaScript 가 astral plane 글자 (emoji, 드문 아시아 스크립트) 를 surrogate pair 로 처리 — 한 글자가 정규식엔 두 개로 보임. /u 면 글자가 Unicode code point 로 처리.
Unicode 텍스트 매칭할 땐 항상 /u. \p{...} Unicode 카테고리 escape 활성, . 가 emoji 한 단위로 매칭.
Sticky 플래그 (/y)
/y 가 /g 의 더 까다로운 사촌: lastIndex 에서만 매칭. 매칭 사이 junk 스킵 없이 입력을 piece-by-piece 소비하는 토크나이저에 유용.