While the SL2 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 SL2, that will require a more sophisticated algorithm than strictly 2-local automata.
One obvious way of extending the SL2 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 SL2 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.