Bugfixes and added VS solution (handy with PyTools for VS!)

1. Targets lookup was being built incorrectly. Changed an assumption
about the input OCL.out text to another that is hopefully more robust.

2. The fragile (and incorrect) 3 digit regex then 4 digit regex
processing was introducing bugs. Invested in a proper regex to
avoid the "ordering of regex replacement" bugs and rewrote the
processing loop so that the same base regex is reused for all
pattern matching.