[1] ある特定の形をした[[URI参照]]に一致するような[[パターン]]のようなものがいくつかの[[プロトコル]]で定義されています。
そのようなものを仮に[DFN[URI パターン]]と呼ぶことにします。

URI パターンはこれまで色々な規格で色々な方式が提案されてきましたが、
広く採用されているものはありません。むしろ、
単純な文字列として[[正規表現]]などを使って一致させる方法が広く使われています。
ただし、完全に文字列として扱う方法では、
[[百分率符号化]]だけの差異や[[ポート]]番号の有無など考慮しなければならないことが多すぎ、
厳密にしようとすると複雑でわかりにくくなってしまうという問題があります。

* URL

[30] [[URL]] 同士の[[比較]]演算や[[正規化]]によって[[一致]]するかどうかを判定する構文と方法については、
[[URLの比較]]を参照。

* URLpattern

[2] [[PICSRules]]
では [CODE(ABNF)[[[URLpattern]]]] という [[URI]] に似た文字列による表現を規定しています。
この文字列は URI と非常によく似ていますが、いくつかの部分で
[CODE(char)[[[*]]]] が使えるなど、本来の URI
とは異なる部分があります。

[CITE[PICSRules Specification]] <http://www.w3.org/TR/REC-PICSRules-971229#URLfilter>

* 拡張 URI

[4] '''P3P のワイルドカード入り[Q[拡張 URI]] ([Q[URI パターン]])''':
[[P3P]] は[[方針参照ファイル]]で [[URI]] [SRC[[[RFC 2396]]]] 
の一致を記述するための
[Q[[[ワイルドカード]]]]が使える[Q[拡張 URI]] を規定しています。

- [[ワイルドカード]]として [CODE(char)[*]] が使えます。
任意の0文字以上を表します。
- [[URI]] に元から [CODE(URI)[*]] が含まれる場合は、
[[百分率符号化]]して [CODE(URI)[%2A]] に[[逃避]]する必要があります。
- [[UA]] は一致検査の際に[[ワイルドカード]]としての [CODE(char)[*]]
を認識してから、 [CODE(URI)[%2A]] を [CODE(URI)[*]]
に戻す必要があります。
- [[逃避]]とその逆変換は [[URI scheme]] 依存です。
- [[URI]] の構文に一致しない URI パターンは無視しても構いません。

とまあ、本来[[予約]]されていて[[百分率符号化]]の前後で等価性が保証されない
[CODE(URI)[*]] をワイルドカードに選んでしまったために、
[[URI scheme]] に独立な処理ができなくなってしまっています。

- [[P3P]] [CSECTION@en[2.3.2.1.2 Wildcards in policy reference files]]
<IW:P3P:"#ref_file_wildcards">

* 正規表現

[5]
[[WCAG 2.0]] の以前の [[WD]] では、 [[XML Schema]]
[[正規表現]]で表された [[URI]] の[[集合]]の記述を
[DFN[URI [RUBYB[パターン] @en[pattern]]]]と呼んでいました。

;; [CITE[Web Content Accessibility Guidelines 2.0]] <http://www.w3.org/TR/2005/WD-WCAG20-20050630/#URIpatterndef>

;; その後の [[WD]] では単に[Q[[[正規表現]]]]と呼んでいます。

[11]
[CITE[Rules-based Resource Property Sets in RDF]] ([CODE[2005-01-18 00:03:38 +09:00]] 版) <http://www.w3.org/2004/12/q/doc/rdf-rulesets.html>

[[Perl5]] [[正規表現]]を使用。

[13]
[[.htaccess]]: [[正規表現]]を使用可能。

* 前方一致

[3]
- [[XML型録]]の [CODE(XMLe)[[[uri]]]] 要素の
[CODE(XMLa)[[[name]]]] 属性は、 
[[URI参照]]の単純な[[文字列]]としての[[前方一致]]を採用しています。
- 1999年版 [[RDF]] の [CODE(XMLa)[[[aboutEachPrefix]]]]
属性は [[URI参照]]の単純な文字列としての前方一致を採用しています。
-- [CITE[Resource Description Framework (RDF) Model and Syntax Specification]] 
[CSECTION[3.4. Containers Defined By A URI Pattern]]
<http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/#URIPrefix>

[14] [CITE@en-US[Service Modeling Language Interchange Format Version 1.1]] ([TIME[2009-05-12 17:50:21 +09:00]] 版) <http://www.w3.org/TR/2009/REC-sml-if-20090512/#URI_prefix_matching>

[40] [CODE(HTTP)@en[[[domain=""]]]] ([[ダイジェスト認証]])
も[[接頭辞一致]]を採用しています。

[43] [[URLの比較]]も参照。

* URI Templates

[29] [[RFC 6570]] は [[URI Templates]] なる [[URL]] を作成するための[[雛形]]言語を規定しています。
ただしこれは [[URL]] の生成のためのものなので、本項で扱っているような
[[URL]] との[[一致]]を検査するためのものではありません。

* メモ

[6]
[CITE@en-us[SML Interchange Format Version 1.0]] ([CODE[2007-03-08 05:32:26 +09:00]] 版) <http://www.w3.org/Submission/2007/SUBM-sml-if-20070321/#URI_prefix_matching>
([[名無しさん]])

[7]
[CITE@en[Protocol for Web Description Resources (POWDER): Web Description Resources Datatypes (WDRD)]] ([CODE[2007-09-27 06:24:18 +09:00]] 版) <http://www.w3.org/TR/2007/WD-powder-xsd-20070925/>
([[名無しさん]])

[8]
[CITE@en-US[Service Modeling Language Interchange Format Version 1.1]] ([CODE[2007-09-27 00:24:13 +09:00]] 版) <http://www.w3.org/TR/2007/WD-sml-if-20070926/#URI_prefix_matching>
([[名無しさん]])

[9]
[CITE@en[URISpace]] ([CODE[2001-02-16 04:12:14 +09:00]] 版) <http://www.w3.org/TR/2001/NOTE-urispace-20010215>
([[名無しさん]])

[10]
[CITE@en-US[URI Pattern Matching for Groups of Resources]] ([CODE[2006-06-21 03:51:25 +09:00]] 版) <http://www.w3.org/2005/Incubator/wcl/matching.html>
([[名無しさん]])

[12]
[[robots.txt]]: 当初は単純な完全一致または[[ディレクトリ]]部の一致のみだったが、後に拡張されている。

[15] [CITE@en[ESI Invalidation Protocol 1.0]]
( ([TIME[2001-08-03 20:31:31 +09:00]] 版))
<http://www.w3.org/TR/esi-invp>

[16] [CITE@EN[R2RML: RDB to RDF Mapping Language]]
( ([TIME[2012-09-27 00:23:35 +09:00]] 版))
<http://www.w3.org/TR/2012/REC-r2rml-20120927/#from-template>

[17] [CITE@en[RFC 6415 - Web Host Metadata]]
( ([TIME[2014-09-14 19:17:07 +09:00]] 版))
<http://tools.ietf.org/html/rfc6415#section-3.1.1.1>

[18] [CITE[Extensible Resource Descriptor (XRD) Version 1.0]]
( ([TIME[2010-11-01 20:25:40 +09:00]] 版))
<http://docs.oasis-open.org/xri/xrd/v1.0/xrd-1.0.html#link.attribute.template>

[19] [CITE@en[Website Parse Template]]
([TIME[2009-05-15 00:54:32 +09:00]] 版)
<http://www.w3.org/Submission/WPT/#urls_section>

[20] [CITE@en[Protocol for Web Description Resources (POWDER): Grouping of Resources]]
([TIME[2009-08-29 01:38:01 +09:00]] 版)
<http://www.w3.org/TR/2009/REC-powder-grouping-20090901/>

[21] [CITE@en[Protocol for Web Description Resources (POWDER): Formal Semantics]]
([TIME[2009-08-29 01:37:49 +09:00]] 版)
<http://www.w3.org/TR/2009/REC-powder-formal-20090901/#iriSets>

[22] [CITE[Content Scripts - Google Chrome Extensions - Google Code]]
( ([TIME[2011-07-04 23:20:05 +09:00]] 版))
<http://code.google.com/chrome/extensions/content_scripts.html>

[23] [CITE[Match Patterns - Google Chrome Extensions - Google Code]]
( ([TIME[2011-07-04 23:30:08 +09:00]] 版))
<http://code.google.com/chrome/extensions/match_patterns.html>

[24] [CITE@en[URL patterns - Custom Search Help]]
( ([TIME[2014-04-26 11:24:38 +09:00]] 版))
<https://support.google.com/customsearch/answer/71826?hl=en>

[25] [CITE[Resource Description Framework (RDF) Model and Syntax Specification]]
( ([TIME[1999-02-24 14:45:07 +09:00]] 版))
<http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/#URIPrefix>

[26] [CITE@ja[Google Developers Console Help — Google Developers]]
( ([TIME[2014-09-30 10:06:51 +09:00]] 版))
<https://developers.google.com/console/help/new/#whitelistingbyhost>

[27] [CITE[The Platform for Privacy Preferences 1.0 (P3P1.0) Specification]]
( ([TIME[2002-04-16 22:03:48 +09:00]] 版))
<http://www.w3.org/TR/P3P/#ref_file_wildcards>

[28] [CITE[The Platform for Privacy Preferences 1.0 (P3P1.0) Specification]]
( ([TIME[2002-04-16 22:03:48 +09:00]] 版))
<http://www.w3.org/TR/P3P/#hints>

[31] [[OAuth 2.0]] は、[[リダイレクトURL]]の登録方法の1つとして、
[[URL scheme]]、[[authority]]、[[path]] を指定する ([[query]] と[[素片識別子]]は含まない)
方法を規定しています。その場合、実際に指定された [[URL]] が登録されたものに一致するか[[比較]]することとなります。
[[RFC 3986]] を参照しつつも、具体的な[[比較]]の演算は定義していません。

;; [[リダイレクトエンドポイント]]を参照。

[FIG(quote)[
[FIGCAPTION[
[32] [CITE@en[mod_proxy - Apache HTTP Server Version 2.4]]
([TIME[2015-02-15 17:51:02 +09:00]] 版)
<http://httpd.apache.org/docs/current/en/mod/mod_proxy.html#Proxy>
]FIGCAPTION]

> Syntax:	<Proxy wildcard-url> ...</Proxy>
> Directives placed in <Proxy> sections apply only to matching proxied content. Shell-style wildcards are allowed.
> <Proxy http://example.com/foo/*>

]FIG]


[FIG(quote)[
[FIGCAPTION[
[33] [CITE[Using the Proxy API - Opera 15+ extensions documentation]]
([TIME[2015-03-14 01:51:40 +09:00]] 版)
<https://dev.opera.com/extensions/tut_proxy.html>
]FIGCAPTION]

> This list may contain the following entries:
> '''['''<scheme>://''']'''<host-pattern>'''[''':<port>''']'''
> Match all hostnames that match the pattern <host-pattern>. A leading "." is interpreted as a "*.".
> Examples: "foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".

]FIG]


[FIG(quote)[
[FIGCAPTION[
[34] [CITE[Match patterns - Opera 15+ extensions documentation]]
([TIME[2015-03-14 01:51:40 +09:00]] 版)
<https://dev.opera.com/extensions/tut_match_patterns.html>
]FIGCAPTION]

> Match pattern syntax
> Here's the basic syntax:
> <url-pattern> := <scheme>://<host><path>
> <scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'chrome-extension'
> <host> := '*' | '*.' <any char except '/' and '*'>+
> <path> := '/' <any chars>
> The meaning of '*' depends on whether it's in the scheme, host, or path part. If the scheme is *, then it matches either http or https. If the host is just *, then it matches any host. If the host is *.hostname, then it matches the specified host or any of its subdomains. In the path section, each '*' matches 0 or more characters. The following table shows some valid patterns.

]FIG]

[35] [[証明書拡張]] [[name constraints]] における [CODE[[[uniformResourceIdentifier]]]]

[FIG(quote)[
[FIGCAPTION[
[36] [CITE@en-us[Crosswalk - xwalk_hosts]]
([[Crosswalk]] 著, [TIME[2015-03-20 02:08:05 +09:00]] 版)
<https://crosswalk-project.org/documentation/manifest/xwalk_hosts.html>
]FIGCAPTION]

> The field takes an array of URL patterns representing hosts which the application should be able to access. The values can be fully qualified host names, like this:
> "http://crosswalk-project.org/"
> Or patterns with wild-card characters, such as:
> "http://*.org/"
> "https://*/"

]FIG]


[37] [CITE[<data> | Android Developers]]
([TIME[2015-06-09 13:07:08 +09:00]] 版)
<http://developer.android.com/guide/topics/manifest/data-element.html>

[38] [CITE@en[This morning's work. · w3c/webappsec-csp@d669817]]
([TIME[2015-10-14 10:57:55 +09:00]] 版)
<https://github.com/w3c/webappsec-csp/commit/d6698170c8eede388bd351773dada7b633988be8>

[FIG(quote)[
[FIGCAPTION[
[39] [CITE[oEmbed]]
([TIME[2015-10-22 22:47:17 +09:00]] 版)
<http://oembed.com/>
]FIGCAPTION]

> The URL scheme may contain one or more wildcards (specified with an asterisk). Wildcards may be present in the domain portion of the URL, or in the path. Within the domain portion, wildcards may only be used for subdomains. Wildcards may not be used in the scheme (to support HTTP and HTTPS, provide two url/endpoint pairs).
> Some examples:
> http://www.flickr.com/photos/* OK
> http://www.flickr.com/photos/*/foo/ OK
> http://*.flickr.com/photos/* OK
> http://*.com/photos/* NOT OK
> *://www.flickr.com/photos/* NOT OK

]FIG]


[FIG(quote)[
[FIGCAPTION[
[41] [CITE@en[BEACON link dump format]]
([TIME[2014-07-07 06:04:19 +09:00]] 版)
<https://gbv.github.io/beaconspec/beacon.html>
]FIGCAPTION]

> A URI pattern in this specification is an URI Template, as defined in [RFC6570], with all template expressions being either {ID} for simple string expansion or {+ID} for reserved expansion.

]FIG]


[42] [CITE[Match Patterns - Google Chrome]]
([TIME[2016-04-13 02:00:29 +09:00]] 版)
<https://developer.chrome.com/extensions/match_patterns>


[FIG(quote)[
[FIGCAPTION[
[44] [CITE[cURL - How To Use]]
( ([TIME[2016-05-31 06:05:05 +09:00]]))
<https://curl.haxx.se/docs/manpage.html>
]FIGCAPTION]

> You can specify multiple URLs or parts of URLs by writing part sets within braces as in:
>   http://site.{one,two,three}.com
> or you can get sequences of alphanumeric series by using '''['''''']''' as in:
>   ftp://ftp.example.com/file'''['''1-100''']'''.txt
>   ftp://ftp.example.com/file'''['''001-100''']'''.txt (with leading zeros)
>   ftp://ftp.example.com/file'''['''a-z''']'''.txt
> Nested sequences are not supported, but you can use several ones next to each other:
>   http://example.com/archive'''['''1996-1999''']'''/vol'''['''1-4''']'''/part{a,b,c}.html
> You can specify any amount of URLs on the command line. They will be fetched in a sequential manner in the specified order.
> You can specify a step counter for the ranges to get every Nth number or letter:
>   http://example.com/file'''['''1-100:10''']'''.txt
>   http://example.com/file'''['''a-z:2''']'''.txt

]FIG]


[FIG(quote)[
[FIGCAPTION[
[45] [CITE[cURL - How To Use]]
( ([TIME[2016-05-31 06:05:05 +09:00]]))
<https://curl.haxx.se/docs/manpage.html#-g>
]FIGCAPTION]

> -g, --globoff
> This option switches off the "URL globbing parser". When you set this option, you can specify URLs that contain the letters {}'''['''''']''' without having them being interpreted by curl itself. Note that these letters are not normal legal URL contents but they should be encoded according to the URI standard.

]FIG]


[46] [CITE@en-US[Match patterns - Mozilla | MDN]]
( ([TIME[2016-03-01 06:01:09 +09:00]]))
<https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Match_patterns>

[FIG(quote)[
[FIGCAPTION[
[47] [CITE[chrome.proxy - Google Chrome]]
( ([TIME[2016-06-17 11:13:37 +09:00]]))
<https://developer.chrome.com/extensions/proxy>
]FIGCAPTION]

> Bypass list
> Individual servers may be excluded from being proxied with the bypassList. This list may contain the following entries:
> '''['''<scheme>://''']'''<host-pattern>'''[''':<port>''']'''
> Match all hostnames that match the pattern <host-pattern>. A leading "." is interpreted as a "*.".
> Examples: "foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".
> Pattern	Matches	Does not match
> ".foobar.com"	"www.foobar.com"	"foobar.com"
> "*.foobar.com"	"www.foobar.com"	"foobar.com"
> "foobar.com"	"foobar.com"	"www.foobar.com"
> "*foobar.com"	"foobar.com", "www.foobar.com", "foofoobar.com"	
> '''['''<scheme>://''']'''<ip-literal>'''[''':<port>''']'''
> Match URLs that are IP address literals.
> Conceptually this is the similar to the first case, but with special cases to handle IP literal canonicalization. For example, matching on "'''['''0:0:0::1''']'''" is the same as matching on "'''['''::1''']'''" because the IPv6 canonicalization is done internally.
> Examples: "127.0.1", "'''['''0:0::1''']'''", "'''['''::1''']'''", "http://'''['''::1''']''':99"
> <ip-literal>/<prefix-length-in-bits>
> Match any URL containing an IP literal within the given range. The IP range is specified using CIDR notation.
> Examples: "192.168.1.1/16", "fefe:13::abc/33"
> <local>
> Match local addresses. An address is local if the host is "127.0.0.1", "::1", or "localhost".
> Example: "<local>"

]FIG]


[FIG(quote)[
[FIGCAPTION[
[48] [CITE[Network Settings - The Chromium Projects]]
( ([TIME[2016-06-17 21:22:42 +09:00]]))
<https://www.chromium.org/developers/design-documents/network-settings>
]FIGCAPTION]

> --proxy-bypass-list=(<trailing_domain>|<ip-address>)'''[''':<port>''']''''''[''';...''']'''
> This tells chrome to bypass any specified proxy for the given semi-colon-separated list of hosts. This flag must be used (or rather, only has an effect) in tandem with --proxy-server.
> Note that trailing-domain matching doesn't require "." separators so "*google.com" will match "igoogle.com" for example.

]FIG]


[49] [CITE@en[Sniffly for ports.]]
([[mikewest]]著, [TIME[2016-07-07 15:31:29 +09:00]])
<https://github.com/w3c/webappsec-csp/commit/22d08b990290e49f5a666fad08de16d75bb369e7>

[50] [CITE@en[Part 2.3: What is an intersection of the two source expressions? (#144)]]
([[Sun77789]]著, [TIME[2016-11-29 23:09:37 +09:00]])
<https://github.com/w3c/webappsec-csp/commit/5da961eb94294f739207e183d21cbe19d3516fa3>

[51] [CITE@en[RFC 8007 - Content Delivery Network Interconnection (CDNI) Control Interface / Triggers]]
([TIME[2016-12-14 14:58:50 +09:00]])
<https://tools.ietf.org/html/rfc8007#section-5.2.4>

[FIG(quote)[
[FIGCAPTION[
[52] [CITE@ja[Web ビュー]]
([[Jwmsft]]著, [TIME[2017-01-20 14:50:56 +09:00]])
<https://msdn.microsoft.com/ja-jp/windows/uwp/controls-and-patterns/web-view>
]FIGCAPTION]

> また、サブドメインのワイルドカード (たとえば、https://*.microsoft.com) を含めることはできますが、ドメインのワイルドカード (たとえば、https://*.com や https://*.*) を含めることはできません。 

]FIG]


[FIG(quote)[
[FIGCAPTION[
[53] [CITE@ja[Handling App Links | Android Developers]]
([TIME[2016-11-18 01:56:01 +09:00]])
<https://developer.android.com/training/app-links/index.html>
]FIGCAPTION]

> android:host attribute with a domain URI pattern

]FIG]


[FIG(quote)[
[FIGCAPTION[
[54] [CITE@en[Creating Safari Content-Blocking Rules]]
([TIME[2017-06-06 17:03:13 +09:00]])
<https://developer.apple.com/library/content/documentation/Extensions/Conceptual/ContentBlockingRules/CreatingRules/CreatingRules.html#//apple_ref/doc/uid/TP40016265-CH2-SW1>
]FIGCAPTION]

> The url-filter string format is a strict subset of JavaScript regular expressions, shown in Table 1. Syntactically, everything supported by JavaScript is reserved but only the subset will be accepted by the parser. An unsupported expression results in a parse error.

]FIG]


[55] [CITE[Module ngx_http_core_module]]
([TIME[2017-05-26 20:36:59 +09:00]])
<https://nginx.org/en/docs/http/ngx_http_core_module.html#location>

[FIG(quote)[
[FIGCAPTION[
[56] [CITE@ja[キャッシュ無効化の概要  |  Cloud CDN のドキュメント  |  Google Cloud Platform]]
( ([TIME[2016-11-03 02:59:38 +09:00]]))
<https://cloud.google.com/cdn/docs/cache-invalidation-overview?hl=ja>
]FIGCAPTION]

> 無効化リクエストには、無効にする 1 つまたは複数のオブジェクトを識別するパスパターンを指定します。/cat.jpg のように特定のパスを指定することも、/pictures/* のようにディレクトリ構造全体を指定することもできます。パスパターンには次の規則が適用されます。
> パスパターンは / で始める必要があります。
> ? 、# は使用できません。
> * は、/ に続く最後の文字として使用できますが、それ以外の場所では使用できません。
> /* で終わる場合、先行する文字列は接頭辞になり、その接頭辞で始まるオブジェクトはすべて無効になります。
> パスパターンは、URL のパス コンポーネント(ホスト名と任意の ? または # の間にあるすべての文字列)と比較されます。
> URL にクエリ文字列(例: /images.php?image=fred.png)が含まれている場合、クエリ文字列だけが異なるオブジェクトを無効にすることはできません。 たとえば、2 つの画像(/images.php?image=fred.png と /images.php?image=barney.png)がある場合、fred.png だけを無効にすることはできません。images.php で提供されるすべての画像を無効にするには、パスパターンに /images.php を使用します。

]FIG]


[FIG(quote)[
[FIGCAPTION[
[57] [CITE@en-US[Microsummary XML grammar reference - Archive of obsolete content | MDN]]
( ([TIME[2015-07-17 11:17:46 +09:00]]))
<https://developer.mozilla.org/en-US/docs/Archive/Mozilla/Microsummary_topics/XML_grammar_reference>
]FIGCAPTION]

> <include> (optional)
> A regular expression matching the URLs of pages that the generator is able to summarize.
> <exclude> (optional)
> A regular expression matching the URLs of pages that the generator is not able to summarize.

]FIG]


[58] [CITE@en-US[Match patterns - Mozilla | MDN]]
([TIME[2017-10-07 22:52:22 +09:00]])
<https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Match_patterns>

[59] [CITE@en[Dev.Opera — Match Patterns]]
([TIME[2017-08-29 15:15:14 +09:00]])
<https://dev.opera.com/extensions/match-patterns/>

[60] [CITE@en[Access and Permissions]]
([TIME[2017-10-14 12:26:52 +09:00]])
<https://developer.apple.com/library/content/documentation/Tools/Conceptual/SafariExtensionGuide/ExtensionPermissions/ExtensionPermissions.html>

[61] [CITE@en[Why invent a new URL template syntax? · Issue #31 · WICG/web-share-target]]
([TIME[2018-02-26 00:50:08 +09:00]])
<https://github.com/WICG/web-share-target/issues/31>

[FIG(quote)[
[FIGCAPTION[
[62] [CITE@en-US[Share - Archive of obsolete content | MDN]]
([TIME[2018-04-05 14:33:56 +09:00]])
<https://developer.mozilla.org/en-US/docs/Archive/Social_API/Share>
]FIGCAPTION]

>  In your manifest, you can define your shareURL in this format:
> "shareURL": "https://yoursite.com/share?u=%{url}&t=%{title}

]FIG]


[FIG(quote)[
[FIGCAPTION[
[63] [CITE@en[Headers & Basic Auth | Netlify]]
([TIME[2019-02-27 10:37:49 +09:00]])
<https://www.netlify.com/docs/headers-and-basic-auth/>
]FIGCAPTION]

> Paths can contain * or :placeholders. A :placeholder matches anything except / while a * matches anything.

]FIG]


[64] [CITE@en[URLs and Hashing  |  Safe Browsing APIs (v4)  |  Google Developers]]
([TIME[2018-04-24 07:36:58 +09:00]])
<https://developers.google.com/safe-browsing/v4/urls-hashing>


[46] [CITE[curl - How To Use]]
([TIME[2020-09-21T09:01:13.000Z]], [TIME[2020-10-01T06:13:41.235Z]])
<https://curl.haxx.se/docs/manpage.html#-g>

[65] [CITE[curl - How To Use]], [TIME[2020-09-21T09:01:13.000Z]], [TIME[2020-10-01T06:24:42.233Z]] <https://curl.haxx.se/docs/manpage.html#-o>


[66] [CITE@en[GNU Wget 1.20 Manual]]
([TIME[2020-10-01T07:30:28.000Z]])
<https://www.gnu.org/software/wget/manual/wget.html#index-types-of-files>

[67] [CITE@en[chrome.declarativeNetRequest - Chrome Developers]], [TIME[1980-01-01T00:00:01.000Z]], [TIME[2020-12-11T08:30:40.644Z]] <https://developer.chrome.com/docs/extensions/reference/declarativeNetRequest/>

[68] [CITE@en[WICG/urlpattern]]
([TIME[2021-03-21T11:56:00.000Z]])
<https://github.com/WICG/urlpattern>

[75] [CITE@en[urlpattern/explainer.md at main · WICG/urlpattern · GitHub]], [TIME[2023-10-05T04:22:23.000Z]] <https://github.com/WICG/urlpattern/blob/main/explainer.md>

[69] [CITE@en[New standard: URLPattern · Issue #215 · whatwg/sg · GitHub]], [TIME[2023-10-05T04:13:40.000Z]] <https://github.com/whatwg/sg/issues/215>

[78] [CITE@en[WHATWG migration · Issue #190 · WICG/urlpattern · GitHub]], [TIME[2023-10-05T04:23:30.000Z]] <https://github.com/WICG/urlpattern/issues/190>

[70] [CITE@en[GitHub - pillarjs/path-to-regexp: Turn a path string such as `/user/:name` into a regular expression]], [TIME[2023-10-05T04:15:27.000Z]] <https://github.com/pillarjs/path-to-regexp>

[76] [CITE@en[GitHub - wanderview/urlpattern-polyfill]], [TIME[2023-10-05T04:22:57.000Z]] <https://github.com/wanderview/urlpattern-polyfill>

[77] [CITE@en[GitHub - denoland/rust-urlpattern: Rust implementation of the `URLPattern` web API]], [TIME[2023-10-05T04:23:12.000Z]] <https://github.com/denoland/rust-urlpattern>

[71] [CITE@en[URLPattern · Issue #525 · web-platform-tests/interop · GitHub]], [TIME[2023-10-05T04:15:42.000Z]] <https://github.com/web-platform-tests/interop/issues/525>

[72] [CITE@en[URLPattern API · Issue #61 · WebKit/standards-positions · GitHub]], [TIME[2023-10-05T04:16:21.000Z]] <https://github.com/WebKit/standards-positions/issues/61>

[73] [CITE@en[Request for Position: URLPattern · Issue #566 · mozilla/standards-positions · GitHub]], [TIME[2023-10-05T04:21:09.000Z]] <https://github.com/mozilla/standards-positions/issues/566>

[74] [CITE@ja[Intent to Ship: URLPattern]], [TIME[2023-10-05T04:22:03.000Z]] <https://groups.google.com/a/chromium.org/g/blink-dev/c/-T5pJtBO8h4/m/cAkpQec1AwAJ>


[80] [CITE@en[urlpattern/202012-update.md at main · whatwg/urlpattern · GitHub]], [TIME[2023-10-19T05:00:17.000Z]] <https://github.com/whatwg/urlpattern/blob/main/202012-update.md>

[79] 
[CITE@en[GitHub - whatwg/urlpattern: URL Pattern Standard]], [TIME[2023-10-19T04:58:47.000Z]] <https://github.com/whatwg/urlpattern>

[81] 
[CITE@en[URL Pattern Standard]], [TIME[2023-10-20T05:32:29.000Z]], [TIME[2023-10-24T00:55:10.728Z]] <https://urlpattern.spec.whatwg.org/>

[82] [CITE@en[Editorial: update the standard for the WHATWG move by domenic · Pull Request #193 · whatwg/urlpattern · GitHub]], [TIME[2023-10-26T04:10:14.000Z]] <https://github.com/whatwg/urlpattern/pull/193>

[83] [CITE@en-us[URL Fields | Elastic Common Schema (ECS) Reference '''['''8.11''']''' | Elastic]], [TIME[2023-11-21T23:16:08.000Z]], [TIME[2023-11-25T09:06:08.917Z]] <https://www.elastic.co/guide/en/ecs/8.11/ecs-url.html>
