Converts a string into an array of tokens, with useful methods for looking ahead and behind, capturing, matching, et cetera.