Files
ladybird/Tests/LibWeb/Text/expected/wpt-import/urlpattern/urlpattern.any.txt
aplefull 6ce312e22f LibRegex: Prevent empty matches in optional quantifiers
Step 2.b of the RepeatMatcher states that once minimum repetitions
are satisfied, empty matches should not be considered for further
repetitions. This was not being enforced for optional quantifiers
like `?`, so we had extra capture group matches.
2026-01-16 01:11:24 +01:00

359 lines
28 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Harness status: OK
Found 354 tests
354 Pass
Pass Loading data...
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/ba"}]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/bar/"}]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: ["https://example.com/foo/bar"]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: ["https://example.com/foo/bar/baz"]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"hostname":"example.com","pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?otherquery#otherhash"}] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: ["https://example.com/foo/bar"]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: ["https://example.com/foo/bar?otherquery#otherhash"]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: ["https://example.com/foo/bar?query#hash"]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: ["https://example.com/foo/bar/baz"]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: ["https://other.com/foo/bar"]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: ["http://other.com/foo/bar"]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: [{"pathname":"/foo/bar","baseURL":"https://other.com"}]
Pass Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}] Inputs: [{"pathname":"/foo/bar","baseURL":"http://example.com"}]
Pass Pattern: [{"pathname":"/foo/:bar"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/([^\\/]+?)"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/:bar"}] Inputs: [{"pathname":"/foo/index.html"}]
Pass Pattern: [{"pathname":"/foo/:bar"}] Inputs: [{"pathname":"/foo/bar/"}]
Pass Pattern: [{"pathname":"/foo/:bar"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo/(.*)"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/*"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/(.*)"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/*"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/(.*)"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo/*"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo/(.*)"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo/*"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo/:bar(.*)"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/:bar(.*)"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/:bar(.*)"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo/:bar(.*)"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo/:bar?"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/:bar?"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo/:bar?"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo/:bar?"}] Inputs: [{"pathname":"/foobar"}]
Pass Pattern: [{"pathname":"/foo/:bar?"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/:bar+"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/:bar+"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/:bar+"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo/:bar+"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo/:bar+"}] Inputs: [{"pathname":"/foobar"}]
Pass Pattern: [{"pathname":"/foo/:bar*"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/:bar*"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/:bar*"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo/:bar*"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo/:bar*"}] Inputs: [{"pathname":"/foobar"}]
Pass Pattern: [{"pathname":"/foo/(.*)?"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/*?"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/(.*)?"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/*?"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/(.*)?"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo/*?"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo/(.*)?"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo/*?"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo/(.*)?"}] Inputs: [{"pathname":"/foobar"}]
Pass Pattern: [{"pathname":"/foo/*?"}] Inputs: [{"pathname":"/foobar"}]
Pass Pattern: [{"pathname":"/foo/(.*)?"}] Inputs: [{"pathname":"/fo"}]
Pass Pattern: [{"pathname":"/foo/*?"}] Inputs: [{"pathname":"/fo"}]
Pass Pattern: [{"pathname":"/foo/(.*)+"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/*+"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/(.*)+"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/*+"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/(.*)+"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo/*+"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo/(.*)+"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo/*+"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo/(.*)+"}] Inputs: [{"pathname":"/foobar"}]
Pass Pattern: [{"pathname":"/foo/*+"}] Inputs: [{"pathname":"/foobar"}]
Pass Pattern: [{"pathname":"/foo/(.*)+"}] Inputs: [{"pathname":"/fo"}]
Pass Pattern: [{"pathname":"/foo/*+"}] Inputs: [{"pathname":"/fo"}]
Pass Pattern: [{"pathname":"/foo/(.*)*"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/**"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/(.*)*"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/**"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo/(.*)*"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo/**"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo/(.*)*"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo/**"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo/(.*)*"}] Inputs: [{"pathname":"/foobar"}]
Pass Pattern: [{"pathname":"/foo/**"}] Inputs: [{"pathname":"/foobar"}]
Pass Pattern: [{"pathname":"/foo/(.*)*"}] Inputs: [{"pathname":"/fo"}]
Pass Pattern: [{"pathname":"/foo/**"}] Inputs: [{"pathname":"/fo"}]
Pass Pattern: [{"pathname":"/foo{/bar}"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo{/bar}"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo{/bar}"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo{/bar}"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo{/bar}?"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo{/bar}?"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo{/bar}?"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo{/bar}?"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo{/bar}+"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo{/bar}+"}] Inputs: [{"pathname":"/foo/bar/bar"}]
Pass Pattern: [{"pathname":"/foo{/bar}+"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo{/bar}+"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo{/bar}+"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"pathname":"/foo{/bar}*"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo{/bar}*"}] Inputs: [{"pathname":"/foo/bar/bar"}]
Pass Pattern: [{"pathname":"/foo{/bar}*"}] Inputs: [{"pathname":"/foo/bar/baz"}]
Pass Pattern: [{"pathname":"/foo{/bar}*"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"pathname":"/foo{/bar}*"}] Inputs: [{"pathname":"/foo/"}]
Pass Pattern: [{"protocol":"(café)"}] Inputs: undefined
Pass Pattern: [{"username":"(café)"}] Inputs: undefined
Pass Pattern: [{"password":"(café)"}] Inputs: undefined
Pass Pattern: [{"hostname":"(café)"}] Inputs: undefined
Pass Pattern: [{"pathname":"(café)"}] Inputs: undefined
Pass Pattern: [{"search":"(café)"}] Inputs: undefined
Pass Pattern: [{"hash":"(café)"}] Inputs: undefined
Pass Pattern: [{"protocol":":café"}] Inputs: [{"protocol":"foo"}]
Pass Pattern: [{"username":":café"}] Inputs: [{"username":"foo"}]
Pass Pattern: [{"password":":café"}] Inputs: [{"password":"foo"}]
Pass Pattern: [{"hostname":":café"}] Inputs: [{"hostname":"foo"}]
Pass Pattern: [{"pathname":"/:café"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"search":":café"}] Inputs: [{"search":"foo"}]
Pass Pattern: [{"hash":":café"}] Inputs: [{"hash":"foo"}]
Pass Pattern: [{"protocol":":℘"}] Inputs: [{"protocol":"foo"}]
Pass Pattern: [{"username":":℘"}] Inputs: [{"username":"foo"}]
Pass Pattern: [{"password":":℘"}] Inputs: [{"password":"foo"}]
Pass Pattern: [{"hostname":":℘"}] Inputs: [{"hostname":"foo"}]
Pass Pattern: [{"pathname":"/:℘"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"search":":℘"}] Inputs: [{"search":"foo"}]
Pass Pattern: [{"hash":":℘"}] Inputs: [{"hash":"foo"}]
Pass Pattern: [{"protocol":":㐀"}] Inputs: [{"protocol":"foo"}]
Pass Pattern: [{"username":":㐀"}] Inputs: [{"username":"foo"}]
Pass Pattern: [{"password":":㐀"}] Inputs: [{"password":"foo"}]
Pass Pattern: [{"hostname":":㐀"}] Inputs: [{"hostname":"foo"}]
Pass Pattern: [{"pathname":"/:㐀"}] Inputs: [{"pathname":"/foo"}]
Pass Pattern: [{"search":":㐀"}] Inputs: [{"search":"foo"}]
Pass Pattern: [{"hash":":㐀"}] Inputs: [{"hash":"foo"}]
Pass Pattern: [{"protocol":"(.*)"}] Inputs: [{"protocol":"café"}]
Pass Pattern: [{"protocol":"(.*)"}] Inputs: [{"protocol":"cafe"}]
Pass Pattern: [{"protocol":"foo-bar"}] Inputs: [{"protocol":"foo-bar"}]
Pass Pattern: [{"username":"caf%C3%A9"}] Inputs: [{"username":"café"}]
Pass Pattern: [{"username":"café"}] Inputs: [{"username":"café"}]
Pass Pattern: [{"username":"caf%c3%a9"}] Inputs: [{"username":"café"}]
Pass Pattern: [{"password":"caf%C3%A9"}] Inputs: [{"password":"café"}]
Pass Pattern: [{"password":"café"}] Inputs: [{"password":"café"}]
Pass Pattern: [{"password":"caf%c3%a9"}] Inputs: [{"password":"café"}]
Pass Pattern: [{"hostname":"xn--caf-dma.com"}] Inputs: [{"hostname":"café.com"}]
Pass Pattern: [{"hostname":"café.com"}] Inputs: [{"hostname":"café.com"}]
Pass Pattern: ["http://🚲.com/"] Inputs: ["http://🚲.com/"]
Pass Pattern: ["http://\ud83d \udeb2"] Inputs: undefined
Pass Pattern: [{"hostname":"\ud83d \udeb2"}] Inputs: undefined
Pass Pattern: [{"pathname":"\ud83d \udeb2"}] Inputs: []
Pass Pattern: [{"pathname":":\ud83d \udeb2"}] Inputs: undefined
Pass Pattern: [{"pathname":":a󠄀b"}] Inputs: []
Pass Pattern: [{"pathname":"test/:a𐑐b"}] Inputs: [{"pathname":"test/foo"}]
Pass Pattern: [{"pathname":":🚲"}] Inputs: undefined
Pass Pattern: [{"port":""}] Inputs: [{"protocol":"http","port":"80"}]
Pass Pattern: [{"protocol":"http","port":"80"}] Inputs: [{"protocol":"http","port":"80"}]
Pass Pattern: [{"protocol":"http","port":"80{20}?"}] Inputs: [{"protocol":"http","port":"80"}]
Pass Pattern: [{"protocol":"http","port":"80 "}] Inputs: [{"protocol":"http","port":"80"}]
Pass Pattern: [{"protocol":"http","port":"100000"}] Inputs: [{"protocol":"http","port":"100000"}]
Pass Pattern: [{"port":"80"}] Inputs: [{"protocol":"http","port":"80"}]
Pass Pattern: [{"protocol":"http{s}?","port":"80"}] Inputs: [{"protocol":"http","port":"80"}]
Pass Pattern: [{"port":"80"}] Inputs: [{"port":"80"}]
Pass Pattern: [{"port":"80"}] Inputs: [{"port":"8\t0"}]
Pass Pattern: [{"port":"80"}] Inputs: [{"port":"80x"}]
Pass Pattern: [{"port":"80"}] Inputs: [{"port":"80?x"}]
Pass Pattern: [{"port":"80"}] Inputs: [{"port":"80\\x"}]
Pass Pattern: [{"port":"(.*)"}] Inputs: [{"port":"invalid80"}]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/./bar"}]
Pass Pattern: [{"pathname":"/foo/baz"}] Inputs: [{"pathname":"/foo/bar/../baz"}]
Pass Pattern: [{"pathname":"/caf%C3%A9"}] Inputs: [{"pathname":"/café"}]
Pass Pattern: [{"pathname":"/café"}] Inputs: [{"pathname":"/café"}]
Pass Pattern: [{"pathname":"/caf%c3%a9"}] Inputs: [{"pathname":"/café"}]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"foo/bar"}]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}]
Pass Pattern: [{"pathname":"/foo/../bar"}] Inputs: [{"pathname":"/bar"}]
Pass Pattern: [{"pathname":"./foo/bar","baseURL":"https://example.com"}] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}]
Pass Pattern: [{"pathname":"","baseURL":"https://example.com"}] Inputs: [{"pathname":"/","baseURL":"https://example.com"}]
Pass Pattern: [{"pathname":"{/bar}","baseURL":"https://example.com/foo/"}] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}]
Pass Pattern: [{"pathname":"\\/bar","baseURL":"https://example.com/foo/"}] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}]
Pass Pattern: [{"pathname":"b","baseURL":"https://example.com/foo/"}] Inputs: [{"pathname":"./b","baseURL":"https://example.com/foo/"}]
Pass Pattern: [{"pathname":"foo/bar"}] Inputs: ["https://example.com/foo/bar"]
Pass Pattern: [{"pathname":"foo/bar","baseURL":"https://example.com"}] Inputs: ["https://example.com/foo/bar"]
Pass Pattern: [{"pathname":":name.html","baseURL":"https://example.com"}] Inputs: ["https://example.com/foo.html"]
Pass Pattern: [{"search":"q=caf%C3%A9"}] Inputs: [{"search":"q=café"}]
Pass Pattern: [{"search":"q=café"}] Inputs: [{"search":"q=café"}]
Pass Pattern: [{"search":"q=caf%c3%a9"}] Inputs: [{"search":"q=café"}]
Pass Pattern: [{"hash":"caf%C3%A9"}] Inputs: [{"hash":"café"}]
Pass Pattern: [{"hash":"café"}] Inputs: [{"hash":"café"}]
Pass Pattern: [{"hash":"caf%c3%a9"}] Inputs: [{"hash":"café"}]
Pass Pattern: [{"protocol":"about","pathname":"(blank|sourcedoc)"}] Inputs: ["about:blank"]
Pass Pattern: [{"protocol":"data","pathname":":number([0-9]+)"}] Inputs: ["data:8675309"]
Pass Pattern: [{"pathname":"/(\\m)"}] Inputs: undefined
Pass Pattern: [{"pathname":"/foo!"}] Inputs: [{"pathname":"/foo!"}]
Pass Pattern: [{"pathname":"/foo\\:"}] Inputs: [{"pathname":"/foo:"}]
Pass Pattern: [{"pathname":"/foo\\{"}] Inputs: [{"pathname":"/foo{"}]
Pass Pattern: [{"pathname":"/foo\\("}] Inputs: [{"pathname":"/foo("}]
Pass Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}]
Pass Pattern: [{"pathname":"var x = 1;"}] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}]
Pass Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}] Inputs: [{"baseURL":"javascript:var x = 1;"}]
Pass Pattern: [{"protocol":"(data|javascript)","pathname":"var x = 1;"}] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}]
Pass Pattern: [{"protocol":"(https|javascript)","pathname":"var x = 1;"}] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}]
Pass Pattern: [{"pathname":"var x = 1;"}] Inputs: [{"pathname":"var x = 1;"}]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: ["./foo/bar","https://example.com"]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/bar"},"https://example.com"]
Pass Pattern: ["https://example.com:8080/foo?bar#baz"] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}]
Pass Pattern: ["/foo?bar#baz","https://example.com:8080"] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}]
Pass Pattern: ["/foo"] Inputs: undefined
Pass Pattern: ["example.com/foo"] Inputs: undefined
Pass Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"] Inputs: ["https://sub.example.com/foo/bar"]
Pass Pattern: ["https://example.com?foo"] Inputs: ["https://example.com/?foo"]
Pass Pattern: ["https://example.com#foo"] Inputs: ["https://example.com/#foo"]
Pass Pattern: ["https://example.com:8080?foo"] Inputs: ["https://example.com:8080/?foo"]
Pass Pattern: ["https://example.com:8080#foo"] Inputs: ["https://example.com:8080/#foo"]
Pass Pattern: ["https://example.com/?foo"] Inputs: ["https://example.com/?foo"]
Pass Pattern: ["https://example.com/#foo"] Inputs: ["https://example.com/#foo"]
Pass Pattern: ["https://example.com/*?foo"] Inputs: ["https://example.com/?foo"]
Pass Pattern: ["https://example.com/*\\?foo"] Inputs: ["https://example.com/?foo"]
Pass Pattern: ["https://example.com/:name?foo"] Inputs: ["https://example.com/bar?foo"]
Pass Pattern: ["https://example.com/:name\\?foo"] Inputs: ["https://example.com/bar?foo"]
Pass Pattern: ["https://example.com/(bar)?foo"] Inputs: ["https://example.com/bar?foo"]
Pass Pattern: ["https://example.com/(bar)\\?foo"] Inputs: ["https://example.com/bar?foo"]
Pass Pattern: ["https://example.com/{bar}?foo"] Inputs: ["https://example.com/bar?foo"]
Pass Pattern: ["https://example.com/{bar}\\?foo"] Inputs: ["https://example.com/bar?foo"]
Pass Pattern: ["https://example.com/"] Inputs: ["https://example.com:8080/"]
Pass Pattern: ["data:foobar"] Inputs: ["data:foobar"]
Pass Pattern: ["data\\:foobar"] Inputs: ["data:foobar"]
Pass Pattern: ["https://{sub.}?example.com/foo"] Inputs: ["https://example.com/foo"]
Pass Pattern: ["https://{sub.}?example{.com/}foo"] Inputs: ["https://example.com/foo"]
Pass Pattern: ["{https://}example.com/foo"] Inputs: ["https://example.com/foo"]
Pass Pattern: ["https://(sub.)?example.com/foo"] Inputs: ["https://example.com/foo"]
Pass Pattern: ["https://(sub.)?example(.com/)foo"] Inputs: ["https://example.com/foo"]
Pass Pattern: ["(https://)example.com/foo"] Inputs: ["https://example.com/foo"]
Pass Pattern: ["https://{sub{.}}example.com/foo"] Inputs: ["https://example.com/foo"]
Pass Pattern: ["https://(sub(?:.))?example.com/foo"] Inputs: ["https://example.com/foo"]
Pass Pattern: ["file:///foo/bar"] Inputs: ["file:///foo/bar"]
Pass Pattern: ["data:"] Inputs: ["data:"]
Pass Pattern: ["foo://bar"] Inputs: ["foo://bad_url_browser_interop"]
Pass Pattern: ["(café)://foo"] Inputs: undefined
Pass Pattern: ["https://example.com/foo?bar#baz"] Inputs: [{"protocol":"https:","search":"?bar","hash":"#baz","baseURL":"http://example.com/foo"}]
Pass Pattern: [{"protocol":"http{s}?:","search":"?bar","hash":"#baz"}] Inputs: ["http://example.com/foo?bar#baz"]
Pass Pattern: ["?bar#baz","https://example.com/foo"] Inputs: ["?bar#baz","https://example.com/foo"]
Pass Pattern: ["?bar","https://example.com/foo#baz"] Inputs: ["?bar","https://example.com/foo#snafu"]
Pass Pattern: ["#baz","https://example.com/foo?bar"] Inputs: ["#baz","https://example.com/foo?bar"]
Pass Pattern: ["#baz","https://example.com/foo"] Inputs: ["#baz","https://example.com/foo"]
Pass Pattern: [{"pathname":"*"}] Inputs: ["foo","data:data-urls-cannot-be-base-urls"]
Pass Pattern: [{"pathname":"*"}] Inputs: ["foo","not|a|valid|url"]
Pass Pattern: ["https://foo\\:bar@example.com"] Inputs: ["https://foo:bar@example.com"]
Pass Pattern: ["https://foo@example.com"] Inputs: ["https://foo@example.com"]
Pass Pattern: ["https://\\:bar@example.com"] Inputs: ["https://:bar@example.com"]
Pass Pattern: ["https://:user::pass@example.com"] Inputs: ["https://foo:bar@example.com"]
Pass Pattern: ["https\\:foo\\:bar@example.com"] Inputs: ["https:foo:bar@example.com"]
Pass Pattern: ["data\\:foo\\:bar@example.com"] Inputs: ["data:foo:bar@example.com"]
Pass Pattern: ["https://foo{\\:}bar@example.com"] Inputs: ["https://foo:bar@example.com"]
Pass Pattern: ["data{\\:}channel.html","https://example.com"] Inputs: ["https://example.com/data:channel.html"]
Pass Pattern: ["http://[\\:\\:1]/"] Inputs: ["http://[::1]/"]
Pass Pattern: ["http://[\\:\\:1]:8080/"] Inputs: ["http://[::1]:8080/"]
Pass Pattern: ["http://[\\:\\:a]/"] Inputs: ["http://[::a]/"]
Pass Pattern: ["http://[:address]/"] Inputs: ["http://[::1]/"]
Pass Pattern: ["http://[\\:\\:AB\\::num]/"] Inputs: ["http://[::ab:1]/"]
Pass Pattern: [{"hostname":"[\\:\\:AB\\::num]"}] Inputs: [{"hostname":"[::ab:1]"}]
Pass Pattern: [{"hostname":"[\\:\\:xY\\::num]"}] Inputs: undefined
Pass Pattern: [{"hostname":"{[\\:\\:ab\\::num]}"}] Inputs: [{"hostname":"[::ab:1]"}]
Pass Pattern: [{"hostname":"{[\\:\\:fé\\::num]}"}] Inputs: undefined
Pass Pattern: [{"hostname":"{[\\:\\::num\\:1]}"}] Inputs: [{"hostname":"[::ab:1]"}]
Pass Pattern: [{"hostname":"{[\\:\\::num\\:fé]}"}] Inputs: undefined
Pass Pattern: [{"hostname":"[*\\:1]"}] Inputs: [{"hostname":"[::ab:1]"}]
Pass Pattern: [{"hostname":"*\\:1]"}] Inputs: undefined
Pass Pattern: ["https://foo{{@}}example.com"] Inputs: ["https://foo@example.com"]
Pass Pattern: ["https://foo{@example.com"] Inputs: ["https://foo@example.com"]
Pass Pattern: ["data\\:text/javascript,let x = 100/:tens?5;"] Inputs: ["data:text/javascript,let x = 100/5;"]
Pass Pattern: [{"pathname":"/:id/:id"}] Inputs: undefined
Pass Pattern: [{"pathname":"/foo","baseURL":""}] Inputs: undefined
Pass Pattern: ["/foo",""] Inputs: undefined
Pass Pattern: [{"pathname":"/foo"},"https://example.com"] Inputs: undefined
Pass Pattern: [{"pathname":":name*"}] Inputs: [{"pathname":"foobar"}]
Pass Pattern: [{"pathname":":name+"}] Inputs: [{"pathname":"foobar"}]
Pass Pattern: [{"pathname":":name"}] Inputs: [{"pathname":"foobar"}]
Pass Pattern: [{"protocol":":name*"}] Inputs: [{"protocol":"foobar"}]
Pass Pattern: [{"protocol":":name+"}] Inputs: [{"protocol":"foobar"}]
Pass Pattern: [{"protocol":":name"}] Inputs: [{"protocol":"foobar"}]
Pass Pattern: [{"hostname":"bad hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad#hostname"}] Inputs: [{"hostname":"bad"}]
Pass Pattern: [{"hostname":"bad%hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad/hostname"}] Inputs: [{"hostname":"bad"}]
Pass Pattern: [{"hostname":"bad\\:hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad<hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad>hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad?hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad@hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad[hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad]hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad\\\\hostname"}] Inputs: [{"hostname":"badhostname"}]
Pass Pattern: [{"hostname":"bad^hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad|hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad\nhostname"}] Inputs: [{"hostname":"badhostname"}]
Pass Pattern: [{"hostname":"bad\rhostname"}] Inputs: [{"hostname":"badhostname"}]
Pass Pattern: [{"hostname":"bad\thostname"}] Inputs: [{"hostname":"badhostname"}]
Pass Pattern: [{}] Inputs: ["https://example.com/"]
Pass Pattern: [] Inputs: ["https://example.com/"]
Pass Pattern: [] Inputs: [{}]
Pass Pattern: [] Inputs: []
Pass Pattern: [{"pathname":"(foo)(.*)"}] Inputs: [{"pathname":"foobarbaz"}]
Pass Pattern: [{"pathname":"{(foo)bar}(.*)"}] Inputs: [{"pathname":"foobarbaz"}]
Pass Pattern: [{"pathname":"(foo)?(.*)"}] Inputs: [{"pathname":"foobarbaz"}]
Pass Pattern: [{"pathname":"{:foo}(.*)"}] Inputs: [{"pathname":"foobarbaz"}]
Pass Pattern: [{"pathname":"{:foo}(barbaz)"}] Inputs: [{"pathname":"foobarbaz"}]
Pass Pattern: [{"pathname":"{:foo}{(.*)}"}] Inputs: [{"pathname":"foobarbaz"}]
Pass Pattern: [{"pathname":"{:foo}{(.*)bar}"}] Inputs: [{"pathname":"foobarbaz"}]
Pass Pattern: [{"pathname":"{:foo}{bar(.*)}"}] Inputs: [{"pathname":"foobarbaz"}]
Pass Pattern: [{"pathname":"{:foo}:bar(.*)"}] Inputs: [{"pathname":"foobarbaz"}]
Pass Pattern: [{"pathname":"{:foo}?(.*)"}] Inputs: [{"pathname":"foobarbaz"}]
Pass Pattern: [{"pathname":"{:foo\\bar}"}] Inputs: [{"pathname":"foobar"}]
Pass Pattern: [{"pathname":"{:foo\\.bar}"}] Inputs: [{"pathname":"foo.bar"}]
Pass Pattern: [{"pathname":"{:foo(foo)bar}"}] Inputs: [{"pathname":"foobar"}]
Pass Pattern: [{"pathname":"{:foo}bar"}] Inputs: [{"pathname":"foobar"}]
Pass Pattern: [{"pathname":":foo\\bar"}] Inputs: [{"pathname":"foobar"}]
Pass Pattern: [{"pathname":":foo{}(.*)"}] Inputs: [{"pathname":"foobar"}]
Pass Pattern: [{"pathname":":foo{}bar"}] Inputs: [{"pathname":"foobar"}]
Pass Pattern: [{"pathname":":foo{}?bar"}] Inputs: [{"pathname":"foobar"}]
Pass Pattern: [{"pathname":"*{}**?"}] Inputs: [{"pathname":"foobar"}]
Pass Pattern: [{"pathname":":foo(baz)(.*)"}] Inputs: [{"pathname":"bazbar"}]
Pass Pattern: [{"pathname":":foo(baz)bar"}] Inputs: [{"pathname":"bazbar"}]
Pass Pattern: [{"pathname":"*/*"}] Inputs: [{"pathname":"foo/bar"}]
Pass Pattern: [{"pathname":"*\\/*"}] Inputs: [{"pathname":"foo/bar"}]
Pass Pattern: [{"pathname":"*/{*}"}] Inputs: [{"pathname":"foo/bar"}]
Pass Pattern: [{"pathname":"*//*"}] Inputs: [{"pathname":"foo/bar"}]
Pass Pattern: [{"pathname":"/:foo."}] Inputs: [{"pathname":"/bar."}]
Pass Pattern: [{"pathname":"/:foo.."}] Inputs: [{"pathname":"/bar.."}]
Pass Pattern: [{"pathname":"./foo"}] Inputs: [{"pathname":"./foo"}]
Pass Pattern: [{"pathname":"../foo"}] Inputs: [{"pathname":"../foo"}]
Pass Pattern: [{"pathname":":foo./"}] Inputs: [{"pathname":"bar./"}]
Pass Pattern: [{"pathname":":foo../"}] Inputs: [{"pathname":"bar../"}]
Pass Pattern: [{"pathname":"/:foo\\bar"}] Inputs: [{"pathname":"/bazbar"}]
Pass Pattern: [{"pathname":"/foo/bar"},{"ignoreCase":true}] Inputs: [{"pathname":"/FOO/BAR"}]
Pass Pattern: [{"ignoreCase":true}] Inputs: [{"pathname":"/FOO/BAR"}]
Pass Pattern: ["https://example.com:8080/foo?bar#baz",{"ignoreCase":true}] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}]
Pass Pattern: ["/foo?bar#baz","https://example.com:8080",{"ignoreCase":true}] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}]
Pass Pattern: ["/foo?bar#baz",{"ignoreCase":true},"https://example.com:8080"] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}]
Pass Pattern: [{"search":"foo","baseURL":"https://example.com/a/+/b"}] Inputs: [{"search":"foo","baseURL":"https://example.com/a/+/b"}]
Pass Pattern: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}] Inputs: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}]
Pass Pattern: ["#foo","https://example.com/?q=*&v=?&hmm={}&umm=()"] Inputs: ["https://example.com/?q=*&v=?&hmm={}&umm=()#foo"]
Pass Pattern: [{"pathname":"/([[a-z]--a])"}] Inputs: [{"pathname":"/a"}]
Pass Pattern: [{"pathname":"/([[a-z]--a])"}] Inputs: [{"pathname":"/z"}]
Pass Pattern: [{"pathname":"/([\\d&&[0-1]])"}] Inputs: [{"pathname":"/0"}]
Pass Pattern: [{"pathname":"/([\\d&&[0-1]])"}] Inputs: [{"pathname":"/3"}]