[
  {
    "id": "email",
    "name": "Email address (RFC 5322 simplified)",
    "pattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
    "description": "Matches a typical email address. Not RFC 5322 fully compliant; sufficient for most validation use cases.",
    "example": "jane.doe@example.com",
    "nonExample": "jane.doe@example",
    "source": "https://emailregex.com"
  },
  {
    "id": "email-strict",
    "name": "Email address (HTML5 input[type=email])",
    "pattern": "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$",
    "description": "Matches the WHATWG HTML5 specification for input[type=email].",
    "example": "a.b+c@example.co.uk",
    "nonExample": "a..b@example.com",
    "source": "https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address"
  },
  {
    "id": "url",
    "name": "HTTP/HTTPS URL",
    "pattern": "^https?://[^\\s/$.?#].[^\\s]*$",
    "description": "Matches an http:// or https:// URL.",
    "example": "https://example.com/path?q=1",
    "nonExample": "ftp://example.com",
    "source": "https://mathiasbynens.be/demo/url-regex"
  },
  {
    "id": "url-strict",
    "name": "URL (full RFC 3986 scheme set)",
    "pattern": "^[a-zA-Z][a-zA-Z\\d+\\-.]*:(?://[^\\s]*)?$",
    "description": "Matches a URL with any RFC 3986 valid scheme.",
    "example": "mailto:user@example.com",
    "nonExample": "://example",
    "source": "RFC 3986"
  },
  {
    "id": "ipv4",
    "name": "IPv4 address",
    "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$",
    "description": "Matches a dotted-quad IPv4 address with 0-255 octets.",
    "example": "192.168.1.1",
    "nonExample": "256.0.0.1",
    "source": "RFC 791"
  },
  {
    "id": "ipv6",
    "name": "IPv6 address",
    "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$",
    "description": "Matches the canonical IPv6 address forms (full, shortened, and ::).",
    "example": "2001:db8::1",
    "nonExample": "2001:zz::1",
    "source": "RFC 4291"
  },
  {
    "id": "mac-address",
    "name": "MAC address (EUI-48)",
    "pattern": "^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$",
    "description": "Matches a MAC address with colon or hyphen separators.",
    "example": "01:23:45:67:89:AB",
    "nonExample": "01-23-45-67-89",
    "source": "IEEE 802"
  },
  {
    "id": "uuid-v4",
    "name": "UUID v4",
    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
    "description": "Matches a UUID v4 (random, with version and variant bits).",
    "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "nonExample": "f47ac10b-58cc-3372-a567-0e02b2c3d479",
    "source": "RFC 9562"
  },
  {
    "id": "uuid-any",
    "name": "UUID (any version)",
    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
    "description": "Matches a UUID of any version 1-8.",
    "example": "01890dfd-c0d6-7c0a-bc6e-7b9b6c4a7e17",
    "nonExample": "not-a-uuid",
    "source": "RFC 9562"
  },
  {
    "id": "hex-color",
    "name": "Hex color (#RGB / #RRGGBB / #RRGGBBAA)",
    "pattern": "^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
    "description": "Matches a 3-, 4-, 6-, or 8-digit hex color.",
    "example": "#1a1a19",
    "nonExample": "#xyzxyz",
    "source": "CSS Color Module"
  },
  {
    "id": "slug",
    "name": "URL slug (kebab-case)",
    "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
    "description": "Matches a URL-safe lowercase kebab-case slug.",
    "example": "my-blog-post",
    "nonExample": "My_Post",
    "source": "common practice"
  },
  {
    "id": "semver",
    "name": "Semantic version",
    "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
    "description": "Matches a SemVer 2.0.0 version string.",
    "example": "1.0.0-alpha+001",
    "nonExample": "1.0",
    "source": "https://semver.org"
  },
  {
    "id": "iso-date",
    "name": "ISO 8601 date",
    "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
    "description": "Matches an ISO 8601 calendar date (YYYY-MM-DD).",
    "example": "2026-04-25",
    "nonExample": "04/25/2026",
    "source": "ISO 8601"
  },
  {
    "id": "iso-datetime",
    "name": "ISO 8601 datetime (with offset or Z)",
    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:?\\d{2})$",
    "description": "Matches an ISO 8601 datetime with timezone designator.",
    "example": "2026-04-25T12:34:56.000Z",
    "nonExample": "2026-04-25 12:34:56",
    "source": "ISO 8601"
  },
  {
    "id": "time-24h",
    "name": "24-hour time HH:MM",
    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
    "description": "Matches a 24-hour clock time.",
    "example": "23:45",
    "nonExample": "24:00",
    "source": "common practice"
  },
  {
    "id": "phone-e164",
    "name": "Phone number (E.164)",
    "pattern": "^\\+[1-9]\\d{1,14}$",
    "description": "Matches an E.164 international phone number with leading +.",
    "example": "+14155552671",
    "nonExample": "415-555-2671",
    "source": "ITU-T E.164"
  },
  {
    "id": "phone-us",
    "name": "Phone number (US)",
    "pattern": "^(?:\\+?1[-.\\s]?)?\\(?[2-9]\\d{2}\\)?[-.\\s]?\\d{3}[-.\\s]?\\d{4}$",
    "description": "Matches a US phone number with optional country code and various separators.",
    "example": "(415) 555-2671",
    "nonExample": "123-45-67",
    "source": "NANP"
  },
  {
    "id": "phone-uk",
    "name": "Phone number (UK)",
    "pattern": "^(\\+44\\s?7\\d{3}|\\(?07\\d{3}\\)?)\\s?\\d{3}\\s?\\d{3}$",
    "description": "Matches a UK mobile phone number.",
    "example": "+44 7700 900123",
    "nonExample": "07000",
    "source": "Ofcom"
  },
  {
    "id": "postal-us",
    "name": "US ZIP code",
    "pattern": "^\\d{5}(-\\d{4})?$",
    "description": "Matches a US 5-digit ZIP or ZIP+4.",
    "example": "94103-1234",
    "nonExample": "9410",
    "source": "USPS"
  },
  {
    "id": "postal-ca",
    "name": "Canadian postal code",
    "pattern": "^[ABCEGHJ-NPRSTVXY]\\d[ABCEGHJ-NPRSTV-Z][ -]?\\d[ABCEGHJ-NPRSTV-Z]\\d$",
    "description": "Matches a Canadian postal code (A1A 1A1 format).",
    "example": "K1A 0B1",
    "nonExample": "D1A 1A1",
    "source": "Canada Post"
  },
  {
    "id": "postal-uk",
    "name": "UK postcode",
    "pattern": "^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z]))) ?[0-9][A-Za-z]{2})$",
    "description": "Matches a UK postcode.",
    "example": "SW1A 1AA",
    "nonExample": "NOTAPCODE",
    "source": "Royal Mail"
  },
  {
    "id": "credit-card",
    "name": "Credit card number (any major brand)",
    "pattern": "^(?:4[0-9]{12}(?:[0-9]{3})?|(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|6(?:011|5[0-9]{2})[0-9]{12}|(?:2131|1800|35\\d{3})\\d{11})$",
    "description": "Matches Visa, MasterCard, Amex, Discover, Diners, JCB. Validate the Luhn checksum separately.",
    "example": "4242424242424242",
    "nonExample": "1234567890123456",
    "source": "PCI DSS test cards"
  },
  {
    "id": "credit-card-luhn",
    "name": "Credit card number (16-digit only)",
    "pattern": "^\\d{13,19}$",
    "description": "Matches digit-only credit card numbers; pair with a Luhn checksum check.",
    "example": "4242424242424242",
    "nonExample": "abcd1234",
    "source": "ISO/IEC 7812"
  },
  {
    "id": "iban",
    "name": "IBAN (International Bank Account Number)",
    "pattern": "^[A-Z]{2}\\d{2}[A-Z0-9]{1,30}$",
    "description": "Matches an IBAN (country code + 2 check digits + BBAN). Verify checksum separately.",
    "example": "GB29NWBK60161331926819",
    "nonExample": "GB29 NWBK",
    "source": "ISO 13616"
  },
  {
    "id": "iban-de",
    "name": "IBAN (Germany)",
    "pattern": "^DE\\d{2}\\d{8}\\d{10}$",
    "description": "Matches a German IBAN (22 chars: DE + 2 + bank code 8 + account 10).",
    "example": "DE89370400440532013000",
    "nonExample": "DE893704",
    "source": "ISO 13616"
  },
  {
    "id": "bic",
    "name": "BIC / SWIFT code",
    "pattern": "^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$",
    "description": "Matches an 8 or 11 character ISO 9362 BIC.",
    "example": "DEUTDEFFXXX",
    "nonExample": "DEUT",
    "source": "ISO 9362"
  },
  {
    "id": "jwt",
    "name": "JSON Web Token",
    "pattern": "^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]*$",
    "description": "Matches the three base64url segments of a JWT.",
    "example": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.SflKxw...",
    "nonExample": "abc",
    "source": "RFC 7519"
  },
  {
    "id": "base64",
    "name": "Base64 string",
    "pattern": "^[A-Za-z0-9+/]+={0,2}$",
    "description": "Matches a base64-encoded string (canonical alphabet, padded).",
    "example": "SGVsbG8gd29ybGQ=",
    "nonExample": "He@llo",
    "source": "RFC 4648"
  },
  {
    "id": "base64url",
    "name": "Base64URL string",
    "pattern": "^[A-Za-z0-9_-]+={0,2}$",
    "description": "Matches a base64url-encoded string.",
    "example": "SGVsbG8tV29ybGQ",
    "nonExample": "a/b",
    "source": "RFC 4648 §5"
  },
  {
    "id": "hex",
    "name": "Hex string (any length)",
    "pattern": "^[a-fA-F0-9]+$",
    "description": "Matches a hex string of any length.",
    "example": "deadbeef",
    "nonExample": "xyz",
    "source": "common practice"
  },
  {
    "id": "sha256",
    "name": "SHA-256 digest (hex)",
    "pattern": "^[a-f0-9]{64}$",
    "description": "Matches a 64-character lowercase hex SHA-256 digest.",
    "example": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "nonExample": "abc",
    "source": "FIPS 180-4"
  },
  {
    "id": "md5",
    "name": "MD5 digest (hex)",
    "pattern": "^[a-f0-9]{32}$",
    "description": "Matches a 32-character lowercase hex MD5 digest.",
    "example": "d41d8cd98f00b204e9800998ecf8427e",
    "nonExample": "abc",
    "source": "RFC 1321"
  },
  {
    "id": "username",
    "name": "Username (3-20 chars, alphanum + underscore)",
    "pattern": "^[a-zA-Z0-9_]{3,20}$",
    "description": "Matches a typical username.",
    "example": "alice_42",
    "nonExample": "al",
    "source": "common practice"
  },
  {
    "id": "password-strong",
    "name": "Strong password",
    "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$",
    "description": "Requires at least 8 chars including upper, lower, digit, and a special character.",
    "example": "P@ssw0rd",
    "nonExample": "password",
    "source": "common practice"
  },
  {
    "id": "hashtag",
    "name": "Hashtag",
    "pattern": "^#[A-Za-z0-9_]+$",
    "description": "Matches a single hashtag like #typescript.",
    "example": "#typescript",
    "nonExample": "# tag",
    "source": "Twitter conventions"
  },
  {
    "id": "mention",
    "name": "@-mention",
    "pattern": "^@[A-Za-z0-9_]+$",
    "description": "Matches a single at-mention.",
    "example": "@octocat",
    "nonExample": "@",
    "source": "common practice"
  },
  {
    "id": "hostname",
    "name": "Hostname (RFC 1123)",
    "pattern": "^(?=.{1,253}$)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$",
    "description": "Matches a DNS hostname per RFC 1123.",
    "example": "sub.example.com",
    "nonExample": "-bad.example",
    "source": "RFC 1123"
  },
  {
    "id": "port",
    "name": "TCP/UDP port",
    "pattern": "^([1-9]\\d{0,3}|[1-5]\\d{4}|6[0-4]\\d{3}|65[0-4]\\d{2}|655[0-2]\\d|6553[0-5])$",
    "description": "Matches a port number 1-65535.",
    "example": "443",
    "nonExample": "70000",
    "source": "IANA"
  },
  {
    "id": "isbn-10",
    "name": "ISBN-10",
    "pattern": "^(?:\\d{9}X|\\d{10})$",
    "description": "Matches a 10-digit ISBN with optional X check digit.",
    "example": "0306406152",
    "nonExample": "123",
    "source": "ISO 2108"
  },
  {
    "id": "isbn-13",
    "name": "ISBN-13",
    "pattern": "^97[89]\\d{10}$",
    "description": "Matches a 13-digit ISBN starting with 978 or 979.",
    "example": "9780306406157",
    "nonExample": "123",
    "source": "ISO 2108"
  },
  {
    "id": "latitude",
    "name": "Latitude (decimal)",
    "pattern": "^[+-]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?)$",
    "description": "Matches a decimal latitude between -90 and +90.",
    "example": "37.7749",
    "nonExample": "91",
    "source": "common practice"
  },
  {
    "id": "longitude",
    "name": "Longitude (decimal)",
    "pattern": "^[+-]?(180(\\.0+)?|(1[0-7]\\d|\\d{1,2})(\\.\\d+)?)$",
    "description": "Matches a decimal longitude between -180 and +180.",
    "example": "-122.4194",
    "nonExample": "181",
    "source": "common practice"
  },
  {
    "id": "vat-eu",
    "name": "EU VAT number",
    "pattern": "^(AT|BE|BG|CY|CZ|DE|DK|EE|EL|ES|FI|FR|GB|HR|HU|IE|IT|LT|LU|LV|MT|NL|PL|PT|RO|SE|SI|SK)?[A-Z0-9]{2,12}$",
    "description": "Matches an EU VAT identification number with optional country prefix.",
    "example": "DE123456789",
    "nonExample": "vat-bad",
    "source": "EU VIES"
  },
  {
    "id": "ssn-us",
    "name": "US Social Security Number",
    "pattern": "^(?!000|666|9\\d{2})\\d{3}-?(?!00)\\d{2}-?(?!0000)\\d{4}$",
    "description": "Matches a valid SSN format excluding reserved values.",
    "example": "123-45-6789",
    "nonExample": "000-00-0000",
    "source": "SSA"
  },
  {
    "id": "vin",
    "name": "Vehicle Identification Number",
    "pattern": "^[A-HJ-NPR-Z0-9]{17}$",
    "description": "Matches a 17-character VIN excluding I, O, Q.",
    "example": "1HGCM82633A004352",
    "nonExample": "1HGCM82633A0043",
    "source": "ISO 3779"
  },
  {
    "id": "hex-mongo-objectid",
    "name": "MongoDB ObjectId",
    "pattern": "^[a-fA-F0-9]{24}$",
    "description": "Matches a 24-char hex MongoDB ObjectId.",
    "example": "507f1f77bcf86cd799439011",
    "nonExample": "abc",
    "source": "MongoDB docs"
  },
  {
    "id": "cron",
    "name": "Cron expression (5-field)",
    "pattern": "^(\\*|([0-9]|[1-5][0-9])(-([0-9]|[1-5][0-9]))?(,([0-9]|[1-5][0-9])(-([0-9]|[1-5][0-9]))?)*)(/[0-9]+)?\\s+(\\*|([0-9]|1[0-9]|2[0-3])(-([0-9]|1[0-9]|2[0-3]))?(,([0-9]|1[0-9]|2[0-3])(-([0-9]|1[0-9]|2[0-3]))?)*)(/[0-9]+)?\\s+(\\*|([1-9]|[12][0-9]|3[01])(-([1-9]|[12][0-9]|3[01]))?(,([1-9]|[12][0-9]|3[01])(-([1-9]|[12][0-9]|3[01]))?)*)(/[0-9]+)?\\s+(\\*|([1-9]|1[0-2])(-([1-9]|1[0-2]))?(,([1-9]|1[0-2])(-([1-9]|1[0-2]))?)*)(/[0-9]+)?\\s+(\\*|([0-7])(-([0-7]))?(,([0-7])(-([0-7]))?)*)(/[0-9]+)?$",
    "description": "Matches a 5-field cron expression (minute hour day-of-month month day-of-week).",
    "example": "0 9 * * 1-5",
    "nonExample": "every monday",
    "source": "POSIX cron"
  },
  {
    "id": "file-extension",
    "name": "File extension",
    "pattern": "^\\.[a-zA-Z0-9]{1,8}$",
    "description": "Matches a file extension like .json, .tar.gz captures only the last segment.",
    "example": ".json",
    "nonExample": "json",
    "source": "common practice"
  },
  {
    "id": "docker-image",
    "name": "Docker image reference",
    "pattern": "^([a-z0-9]+([._-][a-z0-9]+)*(/[a-z0-9]+([._-][a-z0-9]+)*)*)(:[a-zA-Z0-9._-]+)?(@sha256:[a-f0-9]{64})?$",
    "description": "Matches a Docker image reference with optional tag and digest.",
    "example": "alpine:3.19",
    "nonExample": "Bad/Image",
    "source": "OCI Distribution Spec"
  },
  {
    "id": "git-sha",
    "name": "Git commit SHA (full or short)",
    "pattern": "^[a-f0-9]{7,40}$",
    "description": "Matches a 7-40 character git commit SHA.",
    "example": "a1b2c3d4",
    "nonExample": "xyz",
    "source": "Git"
  },
  {
    "id": "npm-package",
    "name": "npm package name",
    "pattern": "^(@[a-z0-9-~][a-z0-9-._~]*/)?[a-z0-9-~][a-z0-9-._~]*$",
    "description": "Matches an npm package name with optional scope.",
    "example": "@scope/my-pkg",
    "nonExample": "My_Pkg",
    "source": "npm"
  },
  {
    "id": "linux-username",
    "name": "Linux username",
    "pattern": "^[a-z_][a-z0-9_-]{0,31}$",
    "description": "Matches a typical Linux username.",
    "example": "alice",
    "nonExample": "123",
    "source": "useradd(8)"
  },
  {
    "id": "windows-filename",
    "name": "Windows filename (no reserved chars)",
    "pattern": "^[^\\\\/:*?\"<>|]+$",
    "description": "Matches a Windows filename excluding reserved characters.",
    "example": "report.txt",
    "nonExample": "a/b.txt",
    "source": "Microsoft docs"
  },
  {
    "id": "plate-uk",
    "name": "UK vehicle registration plate",
    "pattern": "^[A-HJ-PR-Y]{2}\\d{2} ?[A-HJ-PR-Z]{3}$",
    "description": "Matches a current-style UK registration plate.",
    "example": "AB12 CDE",
    "nonExample": "AB1CDE",
    "source": "DVLA"
  },
  {
    "id": "twitter-handle",
    "name": "Twitter/X handle",
    "pattern": "^@?(\\w){1,15}$",
    "description": "Matches a Twitter/X handle (1-15 word chars).",
    "example": "@jack",
    "nonExample": "@user with space",
    "source": "Twitter"
  },
  {
    "id": "instagram-handle",
    "name": "Instagram handle",
    "pattern": "^@?[a-zA-Z0-9._]{1,30}$",
    "description": "Matches an Instagram handle (up to 30 chars).",
    "example": "@photo.user",
    "nonExample": "@bad/user",
    "source": "Instagram"
  },
  {
    "id": "hex-rgb-strict",
    "name": "Hex color (#RRGGBB only)",
    "pattern": "^#[0-9a-fA-F]{6}$",
    "description": "Matches a strict 6-digit hex color.",
    "example": "#1a1a19",
    "nonExample": "#abc",
    "source": "CSS"
  },
  {
    "id": "youtube-id",
    "name": "YouTube video ID",
    "pattern": "^[a-zA-Z0-9_-]{11}$",
    "description": "Matches an 11-character YouTube video ID.",
    "example": "dQw4w9WgXcQ",
    "nonExample": "abc",
    "source": "YouTube"
  },
  {
    "id": "youtube-url",
    "name": "YouTube video URL",
    "pattern": "^https?://(?:www\\.)?(?:youtube\\.com/(?:watch\\?v=|embed/|shorts/)|youtu\\.be/)[a-zA-Z0-9_-]{11}.*$",
    "description": "Matches a YouTube watch, embed, shorts, or short URL.",
    "example": "https://youtu.be/dQw4w9WgXcQ",
    "nonExample": "https://example.com",
    "source": "YouTube"
  },
  {
    "id": "emoji",
    "name": "Single emoji (basic plane and supplementary)",
    "pattern": "[\\u{1F300}-\\u{1FAFF}\\u{2600}-\\u{27BF}]",
    "description": "Matches one emoji character (requires Unicode flag).",
    "example": "🎉",
    "nonExample": "a",
    "source": "Unicode CLDR"
  },
  {
    "id": "latin-only",
    "name": "Latin alphabet only",
    "pattern": "^[A-Za-z]+$",
    "description": "Matches a string consisting only of Latin alphabet letters.",
    "example": "Hello",
    "nonExample": "Hello1",
    "source": "common practice"
  },
  {
    "id": "alphanumeric",
    "name": "Alphanumeric",
    "pattern": "^[A-Za-z0-9]+$",
    "description": "Matches a string of letters and digits with no whitespace.",
    "example": "abc123",
    "nonExample": "abc 123",
    "source": "common practice"
  },
  {
    "id": "whitespace-only",
    "name": "Whitespace only",
    "pattern": "^\\s*$",
    "description": "Matches an empty or whitespace-only string.",
    "example": "   ",
    "nonExample": "x",
    "source": "common practice"
  },
  {
    "id": "non-empty",
    "name": "Non-empty (after trim)",
    "pattern": "^(?!\\s*$).+",
    "description": "Matches strings that contain at least one non-whitespace character.",
    "example": "hello",
    "nonExample": "   ",
    "source": "common practice"
  },
  {
    "id": "unicode-letter",
    "name": "Unicode letter only",
    "pattern": "^\\p{L}+$",
    "description": "Matches one or more Unicode letters (any script). Requires u flag.",
    "example": "日本語",
    "nonExample": "123",
    "source": "Unicode"
  },
  {
    "id": "chinese",
    "name": "Chinese characters",
    "pattern": "^[\\u4E00-\\u9FFF]+$",
    "description": "Matches one or more CJK unified ideographs.",
    "example": "你好",
    "nonExample": "abc",
    "source": "Unicode"
  },
  {
    "id": "japanese",
    "name": "Japanese (Hiragana + Katakana + Kanji)",
    "pattern": "^[\\u3040-\\u309F\\u30A0-\\u30FF\\u4E00-\\u9FFF]+$",
    "description": "Matches Japanese characters in any of Hiragana, Katakana, or Kanji.",
    "example": "こんにちは",
    "nonExample": "hi",
    "source": "Unicode"
  },
  {
    "id": "arabic",
    "name": "Arabic script",
    "pattern": "^[\\u0600-\\u06FF\\u0750-\\u077F]+$",
    "description": "Matches the Arabic script.",
    "example": "مرحبا",
    "nonExample": "hi",
    "source": "Unicode"
  },
  {
    "id": "cyrillic",
    "name": "Cyrillic script",
    "pattern": "^[\\u0400-\\u04FF]+$",
    "description": "Matches the Cyrillic script.",
    "example": "Привет",
    "nonExample": "Hi",
    "source": "Unicode"
  },
  {
    "id": "price-decimal",
    "name": "Decimal number with optional 2 decimals",
    "pattern": "^\\d+(\\.\\d{1,2})?$",
    "description": "Matches a positive decimal number with up to 2 decimal places.",
    "example": "19.99",
    "nonExample": "19.999",
    "source": "common practice"
  },
  {
    "id": "integer-positive",
    "name": "Positive integer",
    "pattern": "^[1-9]\\d*$",
    "description": "Matches a positive integer with no leading zero.",
    "example": "42",
    "nonExample": "042",
    "source": "common practice"
  },
  {
    "id": "integer-any",
    "name": "Integer (any sign)",
    "pattern": "^-?\\d+$",
    "description": "Matches a signed or unsigned integer.",
    "example": "-7",
    "nonExample": "7.0",
    "source": "common practice"
  },
  {
    "id": "data-url",
    "name": "Data URL",
    "pattern": "^data:[a-zA-Z0-9!#$&^_+-]+\\/[a-zA-Z0-9!#$&^_+.\\-]+(;charset=[a-zA-Z0-9!#$&^_+-]+)?(;base64)?,[a-zA-Z0-9!$&'()*+,;=\\-._~:@/?%\\s]+$",
    "description": "Matches an RFC 2397 data URL.",
    "example": "data:text/plain;base64,SGVsbG8=",
    "nonExample": "data:bad",
    "source": "RFC 2397"
  },
  {
    "id": "markdown-link",
    "name": "Markdown link",
    "pattern": "\\[([^\\]]+)\\]\\(([^)]+)\\)",
    "description": "Captures the [text](url) form of a Markdown link.",
    "example": "[home](/)",
    "nonExample": "plain text",
    "source": "CommonMark"
  },
  {
    "id": "html-tag",
    "name": "HTML tag",
    "pattern": "<\\/?[a-zA-Z][a-zA-Z0-9]*\\b[^>]*>",
    "description": "Matches a single HTML opening or closing tag. Do not use to parse HTML.",
    "example": "<a href=\"/\">",
    "nonExample": "plain text",
    "source": "common practice"
  },
  {
    "id": "path-unix",
    "name": "Unix file path",
    "pattern": "^/[^\\0]+$",
    "description": "Matches an absolute Unix file path.",
    "example": "/etc/hostname",
    "nonExample": "home",
    "source": "POSIX"
  },
  {
    "id": "path-windows",
    "name": "Windows file path",
    "pattern": "^[a-zA-Z]:\\\\(?:[^\\\\/:*?\"<>|\\r\\n]+\\\\)*[^\\\\/:*?\"<>|\\r\\n]*$",
    "description": "Matches an absolute Windows file path with a drive letter.",
    "example": "C:\\\\Users\\\\Public",
    "nonExample": "/etc/hostname",
    "source": "Microsoft docs"
  },
  {
    "id": "locale",
    "name": "BCP 47 locale tag",
    "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|-\\d{3})?(-[a-zA-Z0-9]{5,8}|-\\d[a-zA-Z0-9]{3})*$",
    "description": "Matches an IETF BCP 47 language tag.",
    "example": "en-US",
    "nonExample": "english",
    "source": "RFC 5646"
  }
]
