Regular Expression
Regular Expression (regex) adalah cara ringkas menuliskan pola string, misalnya "satu atau lebih digit,
boleh diikuti titik dan digit lagi" cukup ditulis [0-9]+(\.[0-9]+)?. Tapi komputer tidak
bisa langsung "membaca" pola seperti itu. Di balik layar, pola itu diterjemahkan dulu jadi automata:
langkah pertama membentuk NFA lewat teknik yang disebut Thompson Construction, lalu NFA itu
disederhanakan jadi DFA lewat subset construction (teknik yang sama dengan Modul 1). Artinya,
regex sebenarnya cuma "kependekan penulisan" dari FSA yang sudah dipelajari sebelumnya.
Mendukung: literal, | (union / "atau"), * (nol atau lebih), +
(satu atau lebih), ? (opsional), grup (), character class [a-z0-9],
shorthand \d (digit), \w (huruf/angka/underscore), \s (spasi).
Contoh pola untuk token NUMBER pada tokenizer Modul 1: [0-9]+(\.[0-9]+)?