# URLPattern

> How Elide supports the URLPattern global for matching URLs against patterns per the URL Pattern Standard, including `ignoreCase` and `hasRegExpGroups`.

`URLPattern` is a global and follows the [URL Pattern Standard](https://urlpattern.spec.whatwg.org/), including the
`ignoreCase` option and `hasRegExpGroups`.

## Example

```js
// urlpattern.mjs
const route = new URLPattern({ pathname: "/users/:id(\\d+)/:tab?" });

console.log(route.test("https://example.com/users/42"));
console.log(JSON.stringify(route.exec("https://example.com/users/42/posts").pathname.groups));
console.log(route.test("https://example.com/users/alice"));
```

`elide run urlpattern.mjs` prints:

```text
true
{"tab":"posts","id":"42"}
false
```

## Samples

- [Routes with URLPattern](https://elide.help/docs/code-samples#routes-with-urlpattern)

<!-- api-reference:start 17c72debced1 -->
## Reference

**Status:** Full · Not measured · since 1.1.0

### Exports

| Export | Kind | Status | Notes |
| --- | --- | --- | --- |
| `URLPattern` | class | Full | `protocol`, `username`, `password`, `hostname`, `port`, `pathname`, `search`, `hash`, `hasRegExpGroups`, `test()`, `exec()` |
<!-- api-reference:end -->
