Place tests in correct place as per feedback
Return the real offset within the string for begin()/end() rather than the byte offset