Added ? functionality.

Still failing on the case where the ? character is the same as the one before it,
and by letting the ? match 0 characters, we'd pass.

Presumably also broken for * in a similar situation.