I believe all internal state is compiled before any usage can occur, so Regex is mostly save to use from different threads except that it can include arbitrary code that may not be sendable:
I think Regex being non-sendable is a similar issue to many of its uses being throwing. Since Regex is closer to an arbitrary parser than a finite state automaton, you have a lot less guarantees.
Could it be that regex literals are de-duplicated at compile time the way strings usually are? And so you could use it as an instance let without a big performance hit. Maybe?