make a better regex matcher