While the SL_{2} languages include some surprisingly complex languages, the strictly 2-local automata are, nevertheless, quite limited. In a strong sense, they are almost memoryless-the behavior of the automaton depends only on the most recent symbol it has read.
Certainly there are many languages of interest that are not SL_{2}, that will require a more sophisticated algorithm than strictly 2-local automata.
One obvious way of extending the SL_{2} automata is to give them more memory. Consider, for instance, the language of algebraic expressions over decimal integer constants in which we permit negative constants, indicated by a pre?x ‘-'. Note that this is not the same as allowing ‘-' to be used as a unary operator. In the latter case we would allow any number of ‘-'s to occur in sequence (indicating nested negation), in the case in hand, we will allow ‘-'s to occur only singly (as either a subtraction operator or a leading negative sign) or in pairs (as a subtraction operator followed by a leading negative sign). We will still forbid embedded spaces and the use of ‘+' as a sign.
This is not an SL_{2} language. If we must permit ‘--' anywhere, then we would have to permit arbitrarily long sequences of ‘-'s. We can recognize this language, though, if we widen the automaton's scanning window to three symbols.