1. A method of detecting a pattern in a data stream comprising a sequence of events, the method comprising: receiving, at a computerized processing system, a query that specifies a define component that specifies, for each particular symbol in a plurality of symbols in a symbol set, a separate condition that a particular event from the data stream must satisfy in order for the particular symbol to match the particular event; receiving, at the processing system, a regular expression from the query, the regular expression specifying a pattern of symbols from the symbol set; selecting, at a central processing unit of the processing system, a particular pattern type, based at least in part on the pattern of symbols specified in the regular expression, wherein selecting the particular pattern type comprises: selecting the particular pattern type to be a second pattern type and not a first pattern type if any symbols in the regular expression are linked using any operator other than a concatenation operator; based on the particular pattern type, selecting, at the processing system, a particular technique from among (a) a first technique that concurrently maintains only one binding per state in a finite state automaton constructed based on the regular expression and (b) a second technique that concurrently maintains multiple bindings per state in the finite state automaton; and using the particular technique for detecting the pattern in the data stream; wherein selection of the first pattern type as the particular pattern type causes the first technique to be selected as the particular technique; wherein selection of the second pattern type as the particular pattern type causes the second technique to be selected as the particular technique; wherein each binding maintained represents at least a partial match of the regular expression by one or more events from the data stream.