A lot of corner cases dealt with
Need now to expand the test data to ensure I have got them all
Also failure to match because bizarrely some strings were unicode and some not