I'm very surprised no one else has noticed this in a decade but certain parts of the pattern are fundamentally broken, so i reordered the patterns by descending length.
The problem is that | in PCRE compatible (e.g. nearly all popular engines including python) engines does not really mean or but rather try the next if it fails.
This behavior applies to days, months, timezones and extra tokens in the pattern, Reordering the alternations fixes the behavior.
I'm very surprised no one else has noticed this in a decade but certain parts of the pattern are fundamentally broken, so i reordered the patterns by descending length.
The problem is that
|
in PCRE compatible (e.g. nearly all popular engines including python) engines does not really meanor
but rathertry the next if it fails
.This behavior applies to days, months, timezones and extra tokens in the pattern, Reordering the alternations fixes the behavior.