Not this time, I use the position in the buffer to know if a Long Token was found and where is starts. If remaining() = 0 in the buffer after the call we do not have a long token. 

The buffer we are working on is a duplicate() of the one passed to compare() so we can leave it in whatever state we want.

Thinking about it though, I'll do a test where we do not duplicate() the buffer. I'll make compare() remember the position and restore it before returning.