---
title: Regex
---

Finds documents containing terms that match a specific regex pattern.

## Regex Syntax

ParadeDB supports all regex constructs of the Rust [regex](https://docs.rs/regex/latest/regex/) crate, with the following exceptions:

1. Lazy quantifiers such as `+?`
2. Word boundaries such as `\b`

Otherwise, the full syntax of the [regex](https://docs.rs/regex/latest/regex/) crate is supported, including all Unicode support and relevant flags.

A list of regex flags and grouping options can be [found here](https://docs.rs/regex/latest/regex/#grouping-and-flags), which includes:

- named and numbered capture groups
- case insensitivity flag (`i`)
- multi-line mode (`m`)

## Basic Usage

<CodeGroup>
```sql Function Syntax
SELECT description, rating, category
FROM mock_items
WHERE id @@@ paradedb.regex('description', '(plush|leather)');
```
```sql JSON Syntax
SELECT description, rating, category
FROM mock_items
WHERE id @@@
'{
    "regex": {
        "field": "description",
        "pattern": "(plush|leather)"
    }
}'::jsonb;
```
</CodeGroup>

<div className="mt-8" />

<ParamField body="field" required>
  Specifies the field within the document to search for the term.
</ParamField>
<ParamField body="pattern" required>
  A regex pattern string.
</ParamField>

## Wildcard Query

The following query finds all documents that match a wildcard pattern.

<CodeGroup>
```sql Function Syntax
SELECT description, rating, category
FROM mock_items
WHERE id @@@ paradedb.regex('description', 'key.*rd');
```
```sql JSON Syntax
SELECT description, rating, category
FROM mock_items
WHERE id @@@
'{
    "regex": {
        "field": "description",
        "pattern": "key.*rd"
    }
}'::jsonb;
```
</CodeGroup>
