Returns: 'Right Nothing' if the regex did not match the
string, or:
'Right Just' an array of (offset,length) pairs where index 0 is whole match, and the rest are the captured subexpressions, or:
'Left ReturnCode' if there is some strange error