Optional challenge: regular expressions

In this optional, ungraded challenge assignment, you will implement and prove the correctness of a regular expression matcher. To do this assignment, download the source code and do all of the exercises, denoted by EXERCISE in that file.