> Regex has a reputation for being "write once read never". It's primarily because it doesn't have any structure or "modularity"
I don't think this is true - it's because people don't write regex every day - I used to write a lot of web-scrapers which involved getting pretty handy with regexes, it's fine, trust me. If a regex is REALLY hard to read - it's normally because it's badly written, or because it's trying to do something genuinely complicated.
Also how are they not modular? You always build up a regex from smaller regexes, maybe the modularity isn't always easy to follow, but it is there. e.g.
{regex1}{regex2} = regex1 followed by regex2 (concatenation)
({regex1}|{regex2}) = regex2 OR regex2 (OR operator)
etc.
Your URL example can be broken down into smaller modules - e.g. there's a 3-way OR block at the start that cover http(s)://, www(123)., abc.aa/ (don't understand the last one..)