Materi
Garis tegak | memisahkan pilihan: merah|biru cocok dengan merah atau biru. Tanpa kurung, garis tegak membagi seluruh pola menjadi dua. Kurung membatasi pilihan hanya pada bagian di dalamnya.
/warna (merah|biru)/.test("warna biru"); // true
/warna merah|biru/.test("cat biru"); // true: pilihannya "warna merah" atau "biru"
/(ab){3}/.test("ababab"); // trueKurung juga membuat kuantor berlaku untuk beberapa karakter sekaligus. Pada (ab){3}, yang diulang tiga kali adalah ab; pada ab{3}, yang diulang hanya b.
Garis tegak mengikat paling longgar di antara semua bagian pola. Pola berjangkar untuk INV atau PO yang ditulis tanpa kurung dibaca sebagai dua pola utuh yang berbeda, bukan sebagai dua awalan pada satu pola yang sama, sehingga kode yang salah bentuk ikut lolos lewat cabang keduanya.
Kurung punya dua pekerjaan sekaligus: membatasi dan menangkap. Setiap kurung biasa menyimpan bagian yang tertangkap untuk dipakai ulang, yang jadi bahan pelajaran berikutnya. Bila tangkapannya tidak dipakai, tulis (?:...) supaya pola tidak menyimpan apa-apa: (?:ab){3} mengulang ab tanpa menyimpannya.