ตัวอักษรส่วนใหญ่จับคู่กับตัวเอง แต่มี metacharacters ที่มีความหมายพิเศษ:
. ^ $ * + ? { } [ ] \ | ( )
[ และ ] ใช้ระบุ character class (ชุดตัวอักษรที่ต้องการจับคู่) ระบุตัวอักษรแยกกันได้ หรือระบุช่วงด้วย - เช่น [xyz] ตรงกับ x, y, z เหมือน [x-z] ต้องการจับคู่ตัวพิมพ์เล็กทั้งหมดใช้ [a-z]
Metacharacters ไม่ทำงานภายในคลาส เช่น [abc$] ตรงกับ 'a', 'b', 'c', '$' — ตัว $ เป็น metacharacter แต่ในคลาสจะกลายเป็นตัวอักษรธรรมดา
ถ้า ^ อยู่ตัวแรกของคลาส หมายถึง "ไม่ใช่คลาสนี้" เช่น [^8] ตรงกับตัวอักษรใดก็ตามยกเว้น '8'
Metacharacter สำคัญที่สุดคือ backslash \ ใช้ escape metacharacters ทั้งหมด เพื่อจับคู่ตัวอักษรจริง เช่น จับคู่ ] หรือ \ เขียน \] หรือ \\