Re: So writing a URL parser is quite tricky for a software company.
The thing a CS course should ideally teach anyone is _not_ to cobble together a parser by hand, but use the tools available
Generally, yes, though in this case the lexical requirements and grammar are so simple that it wouldn't take significantly more time to write a proper dedicated-purpose URL lexer/parser, given a reasonably competent language and a reasonably competent programmer who understands common parsing techniques.
Of course, Kids These Days would probably try to do the whole thing with EREs1 and screw it up anyway.
1Which is possible, of course. REs themselves are equivalent to DFAs and so would suffice to handle the lexing, as long as the implementation has output (not just matching) capability. ERE families have various degrees of recognition power, but usually they're at least equivalent to PDAs, so they can parse LL(1) languages. It's just not a particularly good idea.