Developing Regular Expressions and NFAs with OCaml