Вместо того, чтобы использовать регулярные выражения, вы можете рассмотреть возможность использования библиотеки URI , которая поставляется с Ruby. Он создан для того, чтобы разбирать и создавать URL-адреса, хорошо протестирован и менее подвержен ошибкам, чем попытка изобрести те же функции.
require 'uri'
url = URI.parse('http://www.google.com/path/to/page.html?a=1&b=2')
url.scheme # => "http"
url.host # => "www.google.com"
url.path # => "/path/to/page.html"
url.query # => "a=1&b=2"
Если этого недостаточно, адрес Addressable :: URI еще более эффективен.