Start implementing a regular expression engine

So far, these are humble beginnings indeed. Based on the descriptions of

	http://swtch.com/%7Ersc/regexp/regexp2.html

I started implementing a Thompson NFA / Pike VM.

The idea being that eventually, regular expressions are to be compiled
into special-purpose bytecode for the Pike VM that executes a varying
number of threads in lock-step over each character of the text to match.
The thread count is bounded by the length of the program: two different
threads with identical instruction pointer at the same character-to-match
would yield exactly the same outcome (and therefore, we can execute just
one such thread instead of possibly many).

To allow for greedy and non-greedy matching, the threads are executed in a
priority order.

To allow for matching groups, each thread carries a state with it, saving
the group offsets acquired so far.

To ease development, the Pattern and Matcher classes are still embedded as
package-local classes into test/Regex.java (so that I can easily develop
them using Eclipse, leaning heavily on Eclipse's debugger).

Also, no parsing is implemented at this time but instead an explicit
program executing a(bb)+a is hardcoded.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Regex: add some code for debugging

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Regex: optimize matching characters

Instead of having an opcode 'CHAR', let's have the opcodes that fall
within the range of a char *be* the opcode 'match this character'.

While at it, break the ranges of the different types of opcodes apart a
litte and describe them, too.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Turn test/Regex into a real unit test

We still do not parse the regular expressions, but we can at least test
that the hardcoded 'a(bb)+a' works as expected.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Regex: add support for character classes

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
WIP: Regex: Implement parsing of regular expressions

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Regex: introduce debug mode

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>