The issue is that if % is the escape character, then there is no way to put an effective % in the string (except MAYBE the end), as %% is the literal (non-effective) %, and % any-other-character is that any-other-character. By many definitions of the escape character, escape end-of-string is an undefined sequence, as escape should be followed by the character it is escaping. We could perhaps define it to become an effective version of the character, but that still doesn't allow us to use the % as a match elsewhere.