Om du är intresserad av vad som händer när du använder | alterneringsoperatör
, svaret är enkelt:regex-motorn bearbetar uttrycket och inmatningssträngen från vänster till höger .
Med mönstret du har som exempel, ^.{8}|.{12}$|.{4} börjar inspektera inmatningssträngen från vänster och letar efter ^.{8} - första 8 tecknen. Hittar dem och det är en match. Fortsätter sedan och hittar de sista 12 tecknen med .{12}$ , och återigen finns det en matchning. Sedan matchas alla strängar med fyra tecken.

Därefter har du ^.{8}|.{4}|.{12}$ . Uttrycket tolkas igen från vänster till höger, de första 8 tecknen matchas först, men därefter kommer endast sekvenser med fyra tecken att matchas, .{12} kommer aldrig att avfyras eftersom det kommer att finnas .{4} matchar!
