# `Kombu.Matcher`
[🔗](https://github.com/hacktobeer/kombu/blob/v0.1.0/lib/kombu/matcher.ex#L1)

Pattern matching registry matching `kombu.matcher`.
Supports `glob` (default) and `pcre` matchers.

# `add_pattern_first`

```elixir
@spec add_pattern_first(String.t()) :: :ok
```

Mark a matcher name as taking `(pattern, data)` instead of `(data, pattern)`.

# `default_matcher`

Return the default matcher `{name, fun}`.

# `fnmatch`

```elixir
@spec fnmatch(String.t(), String.t()) :: boolean()
```

Shell-style wildcard matching (`fnmatch` semantics: `*`, `?`, `[seq]`, `[!seq]`).

# `match`

```elixir
@spec match(String.t(), String.t(), String.t() | nil, keyword()) :: boolean()
```

Match `data` against `pattern` using `matcher` (defaults to `"glob"`).

# `register`

```elixir
@spec register(String.t(), (String.t(), String.t() -&gt; any()), keyword()) :: :ok
```

Register a new pattern matching function under `name`.

# `register_defaults`

Reset and register default `glob` and `pcre` matchers.

# `rematch`

```elixir
@spec rematch(String.t(), String.t()) :: boolean()
```

Regular expression matching anchored at start (`re.match` semantics).

# `set_default_matcher`

```elixir
@spec set_default_matcher(String.t()) :: :ok
```

Set the default matcher by `name`. Raises `Kombu.MatcherNotInstalledError` if not registered.

# `unregister`

```elixir
@spec unregister(String.t()) :: :ok
```

Unregister a matcher by `name`. Raises `Kombu.MatcherNotInstalledError` if not registered.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
