RegexBuddy дава това предупреждение за първото '?'
и ако го премахнете, изглежда, че работи, т.е. ^(.+[^\/:])(?=[?\/]|$)
обаче, ако се опитвате да анализирате основния URL, този регулярен израз няма да работи. Използвайте това вместо това:
select regexp_replace('....', '^(.*:)//([a-z\-.]+)(:[0-9]+)?(.*)$', '\2')