DelimiterRunRecognizer
Recognizes a delimiter run of asterisks, underscores or tildes. It claims the whole run without deciding anything: pairing needs the rest of the line, so it happens in the inline scanner's second pass, and a run that pairs with nothing ends up as plain text.
Every run is claimed whole, including one that can neither open nor close, so the scan never resumes inside a run and no shorter suffix of one is ever classified on its own. A delimiter right after an escape, as in foo *\**, is a genuine new run and is classified as one.