This code right here will allow me to write `[]]` to match `]`. However, I would expect `[!]]` to also work, and yet it won't. The `Some('!')` branch should probably proactively consume the next character.