compile into single expression
use internal state for token and patterns
match offset
GetNext token returning from offset slice