Neo ⤢ ^Khớp vị trí ở đầu chuỗi, hoặc đầu mỗi dòng khi có cờ m. ^He → He ⤢ $Khớp vị trí ở cuối chuỗi, hoặc cuối mỗi dòng khi có cờ m. lo$ → lo ⤢ \bKhớp ranh giới từ, là vị trí giữa ký tự thuộc từ và ký tự không thuộc từ. \bcat\b → cat ⤢ \BKhớp ranh giới không phải từ, là vị trí giữa hai ký tự thuộc từ hoặc hai ký tự không thuộc từ. \Bar → ar Lớp ký tự ⤢ .Khớp bất kỳ ký tự đơn nào trừ ký tự xuống dòng, trừ khi đặt cờ s. a.c → abc ⤢ \dKhớp bất kỳ chữ số nào, từ 0 đến 9. \d → 7 ⤢ \DKhớp bất kỳ ký tự nào không phải chữ số. \D → a ⤢ \wKhớp bất kỳ ký tự thuộc từ nào: chữ cái, chữ số hoặc gạch dưới. \w → _ ⤢ \WKhớp bất kỳ ký tự nào không phải ký tự thuộc từ. \W → ! ⤢ \sKhớp bất kỳ ký tự trắng nào: dấu cách, tab hoặc xuống dòng. a\sb → a b ⤢ \SKhớp bất kỳ ký tự nào không phải ký tự trắng. \S → a ⤢ [abc]Khớp một trong các ký tự được liệt kê bên trong cặp ngoặc vuông. [aeiou] → e ⤢ [^abc]Khớp bất kỳ ký tự nào không nằm trong danh sách bên trong ngoặc vuông. [^aeiou] → s ⤢ [a-z]Khớp bất kỳ ký tự đơn nào trong khoảng cho trước, từ a đến z. [a-z] → m ⤢ [\s\S]Khớp bất kỳ ký tự đơn nào kể cả xuống dòng; đây là cách viết phổ biến thay cho dấu chấm xuyên dòng. [\s\S] → \n ⤢ \p{L}Khớp bất kỳ chữ cái Unicode từ hệ chữ nào, khi có cờ u. \p{L} → é ⤢ \p{N}Khớp bất kỳ ký tự số Unicode từ hệ chữ nào, khi có cờ u. \p{N} → ٣ ⤢ \nChuỗi thoát: khớp một ký tự line feed. \n → line feed ⤢ \tChuỗi thoát: khớp một ký tự tab. \t → tab ⤢ \rChuỗi thoát: khớp một ký tự carriage return. \r → carriage return ⤢ \xhhKhớp ký tự đơn có mã hex hai chữ số cho trước. \x41 → A ⤢ \u{hhhh}Khớp ký tự đơn có code point hex cho trước, khi có cờ u. \u{1F600} → 😀 ⤢ [[a-z]&&[^aeiou]]Giao của lớp ký tự với cờ v: khớp các ký tự cùng lúc thuộc cả hai tập hợp. [[a-z]&&[^aeiou]] → t Bộ định lượng ⤢ *Khớp token đứng trước không lần hoặc nhiều lần. ab* → abbb ⤢ +Khớp token đứng trước một lần hoặc nhiều lần. a+ → aaa ⤢ ?Khớp token đứng trước không lần hoặc một lần, biến nó thành tùy chọn. colou?r → color ⤢ {n}Khớp token đứng trước đúng n lần. a{3} → aaa ⤢ {n,}Khớp token đứng trước n lần trở lên. a{2,} → aaaa ⤢ {n,m}Khớp token đứng trước từ n đến m lần, bao gồm cả hai đầu. a{2,4} → aaa ⤢ *?Bộ định lượng lazy: khớp token đứng trước không lần hoặc nhiều lần, lấy ít nhất có thể. <.*?> on <a><b> → <a> ⤢ +?Bộ định lượng lazy: khớp token đứng trước một lần hoặc nhiều lần, lấy ít nhất có thể. \d+? on 123 → 1 ⤢ ??Bộ định lượng lazy: khớp token đứng trước không lần hoặc một lần, ưu tiên không lần. ab?? on ab → a ⤢ {n,m}?Bộ định lượng lazy: khớp token đứng trước từ n đến m lần, lấy ít nhất có thể. a{1,3}? on aaa → a ⤢ *+Bộ định lượng possessive (PCRE): khớp token đứng trước không lần hoặc nhiều lần và giữ lấy phần đã khớp, không bao giờ quay lui để thử cách tách khác. .*+a on aaa → no match Nhóm và phép hoặc ⤢ (abc)Nhóm bắt: khớp chuỗi đó và ghi nhớ để dùng cho backreference. (ab)+ → abab ⤢ (?:abc)Nhóm không bắt: khớp chuỗi đó nhưng không ghi nhớ. (?:ab)+ → abab ⤢ (?=abc)Lookahead khẳng định: khớp nếu các ký tự tiếp theo là abc, mà không tiêu thụ chúng. a(?=b) → a ⤢ (?!abc)Lookahead phủ định: khớp nếu các ký tự tiếp theo không phải abc, mà không tiêu thụ chúng. a(?!b) → a ⤢ \1Backreference: khớp đúng văn bản mà nhóm bắt số 1 đã bắt. (a)\1 → aa ⤢ a|bPhép hoặc: khớp biểu thức đứng trước hoặc đứng sau dấu gạch đứng. cat|dog → dog ⤢ (?<name>abc)Nhóm bắt có tên: khớp chuỗi đó và ghi nhớ dưới tên cho trước. (?<year>\d{4}) → year = 2026 ⤢ (?<=abc)Lookbehind khẳng định: khớp nếu các ký tự phía trước là abc, mà không tiêu thụ chúng. (?<=a)b → b ⤢ (?<!abc)Lookbehind phủ định: khớp nếu các ký tự phía trước không phải abc, mà không tiêu thụ chúng. (?<!a)b → b ⤢ \k<name>Backreference có tên: khớp đúng văn bản mà nhóm có tên đã bắt. (?<w>\w+) \k<w> → the the ⤢ (?>abc)Nhóm atomic (PCRE): khớp chuỗi đó một lần và không bao giờ quay lui vào trong. (?>a+)ab on aab → no match ⤢ (?|a|b)Branch reset (PCRE): phép hoặc trong đó mỗi nhánh dùng lại cùng các số nhóm. (?|(cat)|(dog)) → \1 = dog Cờ ⤢ gCờ global: tìm mọi kết quả khớp trong chuỗi, không chỉ cái đầu tiên. /a/g on aaa → a, a, a ⤢ iCờ không phân biệt hoa thường: bỏ qua chữ hoa/thường khi khớp. /Hi/i → hi ⤢ mCờ multiline: coi ^ và $ là đầu và cuối của mỗi dòng. /^a/m matches at the start of each line ⤢ sCờ dotall: cho phép dấu chấm khớp cả ký tự xuống dòng. /a.b/s → a\nb ⤢ uCờ unicode: xử lý pattern và đầu vào như các code point Unicode. /\u{1F600}/u → 😀 ⤢ yCờ sticky: chỉ khớp tại đúng vị trí do lastIndex đặt. /ab/y matches only at lastIndex ⤢ dCờ indices: thêm vị trí bắt đầu và kết thúc của mỗi kết quả khớp vào kết quả. /b/d on abc → indices [1, 2] ⤢ vCờ unicode sets: bản u chặt chẽ hơn, còn cho phép phép toán tập hợp bên trong lớp ký tự. /[a-z&&[^aeiou]]/v → t ⤢ xCờ extended (PCRE): bỏ qua khoảng trắng chưa thoát và chú thích # bên trong pattern. /a b/x → ab