“Maximal-munch” tokenization in linear time (ACM transactions on programming languages and systems, 1998)