1. A method of matching a string of symbols to a ruleset, said ruleset comprising a set of pattern matching rules, comprising: at a compiler; ignoring begin anchor requirements when constructing a DFA from all the rules of the ruleset; and annotating the accepting states of the DFA with begin anchor information; at a server, receiving an input stream comprising said string of symbols; to match symbols in said string of symbols, executing the DFA by a descent from a DFA root state; checking the begin anchor annotations to determine whether begin anchor requirements are satisfied if an accepting state match is reached; and reporting the match if the begin anchor requirements as annotated are satisfied; and prior to descent of the DFA, building a record of which begin anchors are satisfied by a first symbol position, wherein the record is referable during each DFA descent to check begin anchor status.