def <<(url)
      if !url.is_a?(Regexp)
        full, scheme, domain, path = *url.match(%r{([^:]*)://?([^/?]*)(.*)})
        domain = Regexp.escape(domain).gsub("\\*", "(.*?)").gsub("(.*?)\\.", "([^\\.]+\\.)?")
        path = Regexp.escape(path).gsub("\\*", "(.*?)")
        url = Regexp.new("^#{Regexp.escape(scheme)}://#{domain}#{path}")
      end
      @urls << url
    end
def <<(url)
      if !url.is_a?(Regexp)
        full, scheme, domain, path = *url.match(%r{([^:]*)://?([^/?]*)(.*)})
        domain = Regexp.escape(domain).gsub("\\*", "(.*?)").gsub("(.*?)\\.", "([^\\.]+\\.)?")
        path = Regexp.escape(path).gsub("\\*", "(.*?)")
        url = Regexp.new("^#{Regexp.escape(scheme)}://#{domain}#{path}")
      end
      @urls << url
    end
Construct a new OEmbed::Provider instance, pointing at a specific oEmbed
 endpoint.

 The endpoint should be a String representing the http URI of the Provider's
 oEmbed endpoint. The endpoint String may also contain a {format} portion.
 In actual requests to this Provider, this string will be replaced with a String
 representing the request format (e.g. "json").

 If give, the format should be the name of the default format for all request
 to this Provider (e.g. 'json'). Defaults to OEmbed::Formatter.default

 For example:
   # If requests should be sent to:
   # "http://my.service.com/oembed?format=#{OEmbed::Formatter.default}"
   @provider = OEmbed::Provider.new("http://my.service.com/oembed")

   # If requests should be sent to:
   # "http://my.service.com/oembed.xml"
   @xml_provider = OEmbed::Provider.new("http://my.service.com/oembed.{format}", :xml)
 Adds the given url scheme to this Provider instance.
 The url scheme can be either a String, containing wildcards specified
 with an asterisk, (see http://oembed.com/#section2.1 for details),
 or a Regexp.

 For example:
   @provider << "http://my.service.com/video/*"
   @provider << "http://*.service.com/photo/*/slideshow"
   @provider << %r{^http://my.service.com/((help)|(faq))/\d+[#\?].*}