def METHOD_NAME(self, want, got, optionflags):
    check = super().METHOD_NAME(want, got, optionflags)
    if check:
        return check
    with contextlib.suppress(Exception):
        if eval(want) == eval(got):
            return True
    for regex in (_q_re, _sq_re):
        with contextlib.suppress(Exception):
            parsed_got = regex.match(got.replace(r"\\", "")).groupdict()
            parsed_want = regex.match(want.replace(r"\\", "")).groupdict()
            v1 = float(parsed_got["magnitude"])
            v2 = float(parsed_want["magnitude"])
            if abs(v1 - v2) > abs(v1) / 1000:
                return False
            if parsed_got["unit"] != parsed_want["unit"]:
                return False
            return True
    cnt = 0
    for regex in (_unit_re,):
        with contextlib.suppress(Exception):
            parsed_got, tmp = regex.subn("\1", got)
            cnt += tmp
            parsed_want, temp = regex.subn("\1", want)
            cnt += tmp
            if parsed_got == parsed_want:
                return True
    if cnt:
        # If there was any replacement, we try again the previous methods.
        return self.METHOD_NAME(parsed_want, parsed_got, optionflags)
    return False