case-insensitive patterns

> I am fine with implementing either (?[flags]) or (?[flags]:[pattern) or
> both.

I'm going to just do the latter then, as it's a simple syntax change from
what I currently have, whereas the other is more involved.

(this change is now pushed)