{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://api-evangelist.github.io/regular-expressions/json-schema/regular-expressions-pattern-schema.json", "title": "Regular Expression Pattern", "description": "Schema for describing a regular expression pattern with its metadata, use case, and supported flavors.", "type": "object", "required": ["pattern"], "properties": { "id": { "type": "string", "description": "Unique identifier for the pattern." }, "name": { "type": "string", "description": "Human-readable name for the pattern." }, "description": { "type": "string", "description": "What the pattern matches and its intended use." }, "pattern": { "type": "string", "description": "The regular expression pattern string." }, "flags": { "type": "string", "description": "Default flags for the pattern (e.g., 'gi', 'im')." }, "flavor": { "type": "string", "description": "The regex flavor this pattern is written for.", "enum": ["PCRE", "PCRE2", "JavaScript", "Python", "Java", ".NET", "Ruby", "Go", "POSIX ERE", "POSIX BRE"] }, "tags": { "type": "array", "items": { "type": "string" }, "description": "Categorization tags for the pattern." }, "useCase": { "type": "string", "description": "Primary use case for this pattern (e.g., 'Email Validation', 'URL Parsing', 'Date Extraction')." }, "examples": { "type": "object", "description": "Example strings that demonstrate the pattern.", "properties": { "matching": { "type": "array", "items": { "type": "string" }, "description": "Strings that match the pattern." }, "nonMatching": { "type": "array", "items": { "type": "string" }, "description": "Strings that do not match the pattern." } } }, "groups": { "type": "array", "description": "Description of capturing groups in the pattern.", "items": { "type": "object", "required": ["index"], "properties": { "index": { "type": "integer", "description": "Group number (1-based)." }, "name": { "type": "string", "description": "Named group identifier, if using named captures." }, "description": { "type": "string", "description": "What this group captures." } } } }, "performance": { "type": "object", "description": "Performance characteristics and potential issues.", "properties": { "backtracking": { "type": "boolean", "description": "Whether this pattern uses significant backtracking." }, "catastrophicBacktracking": { "type": "boolean", "description": "Whether this pattern could exhibit catastrophic backtracking (ReDoS vulnerability)." }, "notes": { "type": "string", "description": "Performance notes and recommendations." } } }, "created": { "type": "string", "format": "date", "description": "Date the pattern was created." }, "modified": { "type": "string", "format": "date", "description": "Date the pattern was last modified." } } }