Pure OCaml regular expressions, with support for Perl and POSIX-style strings