* Add support for sub-match captures and report them.
* Also support anchored (left or right) regular expressions (using ^ and $).
* Added grammar specification
* Add more comments for better code readability
1. Add unicode support
2. A transition in the NFA isn't an enumerate list of characters on which a transition is possible, but is instead a range of characters beteen which a transition is possible
3. No more NFACaptureNode. NFANode is the only type
4. Always define all fields in NFANode to prevent the JITter from deoptimizing
5. Only retrun a set of captures instead of matches and captures
6. Default capturing group 0 is always present
7. Pretty printing for the NFA representation using GraphViz
* Add test for submatch captures
More unit tests
Added comparison benchmark against native regexp implementation
Add more tests and better formatting. Allow comparing running times of regexp-js v/s the native implementation for a variety of regular expressions and input strings.