A programmable
pattern matching engine efficiently parses the contents of network messages for regular expressions and executes pre-defined actions or treatments on those messages that match the regular expressions. The
pattern matching engine is preferably a logic circuit designed to perform its
pattern matching and execution functions at high speed, e.g., at multi-
gigabit per second rates. It includes, among other things, a message buffer for storing the message being evaluated, a decoder circuit for decoding and executing corresponding actions or treatments, and one or more content-addressable memories (CAMs) that are programmed to store the regular expressions used to search the message. The
CAM may be associated with a second memory device, such as a
random access memory (RAM), as necessary, that is programmed to contain the respective actions or treatments to be applied to messages matching the corresponding
CAM entries. The RAM provides its output to the decoder circuit, which, in response,
decodes and executes the specified action or treatment.