Lexer should match groups using token indices