Base class for marker maps used by the parser. Holds an instance map and provides generic peek logic for matching variable-length marker
sequences at a given position.
Core match: determines if characters at a given position match entries
in this map. Uses a loop-based approach to handle variable-length sequences. Always normalizes digits to "1" for matching (harmless
for maps without digit entries). Subclasses can wrap this with peek() for higher-level behaviour; callers can call eat() directly.