
[Steven D'Aprano <steve@pearwood.info>]
[skipping FUD about pip]
If the OP: has problems with pip they can't easily resolve, I expect they'll say so. In my experience, effective help consists of sticking to the simplest things that can possibly work at first, not bury a questioner with an exhaustive account of everything that could possibly go wrong. That's your job ;-) Note that there's not the slightest reason to expect that the OP here is a newbie; quite the contrary.
Now you can use regex. In some cases, you can put "import regex as re" at the top of a module At worst, replace instances of "re" with "regex". Stay away from the new features, and it's highly compatible with Python;s re.
If you're only using the features that re supports, wouldn't it be easier to just use re?
Th\e OP explicitly doesn't want to stick to th\e features re supports. Specifically, they want to use the optional timeouts that regex supports but re doesn't. What I wrote here is more elaboration on that _trying_ this is easier than they might be thinking: They don't have to, e.g., rewrite their regexps, or invoke different function or method names, or worry that they'll get different results. The packages are highly compatible in syntax and semantics and APIs so long as you stick to the things re does. That in no way suggests they _should_ stick to what re does. It's assuring them \that _getting started_ is close to trivial. Their current code should continue to work unchanged, apart from just changing "re" to "regex".