I should mention that 99.9% of domains will fall into standard form ( handle.domain or ip.ip.ip.ip )
As such, You are definitely more likely to let a user enter a bad URL they did not intend because it validates then to let a uncommon domain actually be used.
As such- a much simpler regex would likely 'make more people happy' than being 100% correct to tech spec.
None of those is a URI, so a URI validator most certainly should not accept them. Just because browsers tend to understand them as a matter of a historical accident does not mean those are valid URIs, just as tag soup that browsers also tend to understand isn't valid HTML either.
Exactly. The goal was to come up with a good regular expression to validate URLs as user input. There’s no way I’d want to allow alternate IP address notations.