1. A method of matching a string of symbols to a ruleset, said ruleset comprising a set of pattern matching rules, comprising: ignoring begin anchor requirements when constructing a DFA from all the rules of the ruleset; annotating the accepting states of the DFA with begin anchor information; 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.