1. A method for matching rules to an input stream by executing a single DFA having a plurality of states, wherein said rules require greedy matching and comprehensive matching, comprising: in a scanner: executing the DFA in a single scan descent; reporting comprehensive match tokens; reporting greedy match tokens; and if it is known that a given start position in the input stream cannot be the beginning of a comprehensive match, and the start position overlaps a committed greedy match, skipping to the next viable position in the input stream.