1. A method for building a state table of a state machine algorithm in a pattern matching application, comprising: identifying at least one search pattern; creating a search pattern trie; adding the at least one search pattern to the search pattern trie; building a non-deterministic finite automata from the search pattern trie; building a deterministic finite automata from the non-deterministic finite automata; converting the deterministic finite automata into separate data structures comprising a state transition table, an array of per state matching pattern lists, and a separate failure pointer list for each state for the non-deterministic finite automata; and using the separate data structures as the state table.