A computer-implemented method, comprising: receiving, in a data processing apparatus, a transition table for a current state of a finite automaton, the finite automaton configured to match patterns in input data, the transition table storing, for each possible next element in the input data, a corresponding next state of the finite automaton; characterized by: determining, with the data processing apparatus, whether the transition table for the current state is similar to any transition table template in a set of transition table templates, each transition table template being a transition table for a respective different state of the finite automaton, where the transition table is similar to a transition table template when a difference region for the transition table and the transition table template has a size satisfying a threshold, the difference region being a contiguous region in the transition table containing all next states that are different from the corresponding next states in the transition table template; in response to determining that the transition table is similar to a transition table template in the set of transition table templates, generating, with the data processing apparatus, a condensed representation of the transition table, the condensed representation including a reference to the similar transition table template, an identification of the difference region, and the next states in the difference region of the transition table; and in response to determining that the transition table is not similar to any transition table template in the set of transition table templates, adding, in the data processing apparatus, the transition table to the set of transition table templates. receiving, in a data processing apparatus, a transition table for a current state of a finite automaton, the finite automaton configured to match patterns in input data, the transition table storing, for each possible next element in the input data, a corresponding next state of the finite automaton; characterized by: determining, with the data processing apparatus, whether the transition table for the current state is similar to any transition table template in a set of transition table templates, each transition table template being a transition table for a respective different state of the finite automaton, where the transition table is similar to a transition table template when a difference region for the transition table and the transition table template has a size satisfying a threshold, the difference region being a contiguous region in the transition table containing all next states that are different from the corresponding next states in the transition table template; in response to determining that the transition table is similar to a transition table template in the set of transition table templates, generating, with the data processing apparatus, a condensed representation of the transition table, the condensed representation including a reference to the similar transition table template, an identification of the difference region, and the next states in the difference region of the transition table; and in response to determining that the transition table is not similar to any transition table template in the set of transition table templates, adding, in the data processing apparatus, the transition table to the set of transition table templates. determining, with the data processing apparatus, whether the transition table for the current state is similar to any transition table template in a set of transition table templates, each transition table template being a transition table for a respective different state of the finite automaton, where the transition table is similar to a transition table template when a difference region for the transition table and the transition table template has a size satisfying a threshold, the difference region being a contiguous region in the transition table containing all next states that are different from the corresponding next states in the transition table template; in response to determining that the transition table is similar to a transition table template in the set of transition table templates, generating, with the data processing apparatus, a condensed representation of the transition table, the condensed representation including a reference to the similar transition table template, an identification of the difference region, and the next states in the difference region of the transition table; and in response to determining that the transition table is not similar to any transition table template in the set of transition table templates, adding, in the data processing apparatus, the transition table to the set of transition table templates.