_UNRESERVED_PAT shouldn't contain '!'
From src/urllib3/util/url.py:
_UNRESERVED_PAT = (
r"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._!\-~"
)
The RFC defines unreserved like this:
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"