Materi
Lookahead adalah pernyataan tentang apa yang ada sesudah posisi saat ini. Bentuk positifnya (?=...) menuntut pola di dalamnya cocok mulai posisi itu; bentuk negatifnya (?!...) menuntut kebalikannya. Keduanya tidak memakan karakter: sesudah diperiksa, pencocokan kembali ke posisi semula dan melanjutkan dari sana.
"berat 25 unit".match(/\d+(?= unit)/)[0]; // "25", satuannya tidak ikut
/kursi (?!kosong)/.test("kursi kosong"); // false
/kursi (?!kosong)/.test("kursi 12"); // trueKarena tidak memakan karakter, beberapa lookahead bisa ditumpuk di posisi yang sama dan semuanya harus terpenuhi. Pola ^(?=.*7)(?=.*9) menuntut teks memuat angka 7 dan angka 9 tanpa menentukan mana yang lebih dulu. Syarat seperti itu sulit ditulis dengan pola biasa, karena tiap urutan harus disebut satu per satu.
Lookahead negatif dipakai untuk mengecualikan sebagian kecil dari kelompok besar: semua kode yang diawali satu huruf tertentu kecuali yang tahunnya sudah kedaluwarsa, atau semua baris yang memuat satu kata tetapi tidak memuat kata pembatalnya. Tanpa lookahead, pengecualian seperti ini dikerjakan di kode, bukan di pola.