Jika Anda tertarik dengan apa yang terjadi saat Anda menggunakan | operator pengganti
, jawabannya mudah:mesin regex memproses ekspresi dan string input dari kiri ke kanan .
Mengambil pola yang Anda miliki sebagai contoh, ^.{8}|.{12}$|.{4} mulai memeriksa string input dari kiri, dan memeriksa ^.{8} - 8 karakter pertama. Menemukan mereka dan itu adalah kecocokan. Kemudian, lanjutkan dan temukan 12 karakter terakhir dengan .{12}$ , dan lagi ada kecocokan. Kemudian, string 4 karakter apa pun akan dicocokkan.

Selanjutnya, Anda memiliki ^.{8}|.{4}|.{12}$ . Ekspresi diurai lagi dari kiri ke kanan, 8 karakter pertama dicocokkan terlebih dahulu, tetapi selanjutnya, hanya urutan 4 karakter yang akan dicocokkan, .{12} tidak akan pernah menyala karena akan ada .{4} cocok!
