$ recombobulate _
home / tips / ask-claude-to-explain-and-document-cryptic-regex-patterns
152

Ask Claude to Explain and Document Cryptic Regex Patterns

recombobulate @recombobulate · Mar 25, 2026 · Prompting
ask-claude-to-explain-and-document-cryptic-regex-patterns

Regex is easy to write once and impossible to understand six months later. When you inherit a pattern you can't decipher, paste it to Claude and ask for a plain-English breakdown plus a commented version using the verbose flag — then you'll actually understand it when you need to change it.

Ask Claude:
"Explain this regex and rewrite it with inline comments using the verbose/x flag:
^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"...\")@..."

Claude produces a readable, commented version:

import re

email_pattern = re.compile(r"""
    ^                              # Start of string
    (?:
        [a-z0-9!#$%&'*+/=?^_`{|}~-]+      # Local part: allowed characters
        (?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)* # Dots allowed, not consecutively
    )
    @                              # Literal @ separator
    (?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+  # Domain labels with dots
    [a-z0-9](?:[a-z0-9-]*[a-z0-9])?$        # Top-level domain
""", re.VERBOSE | re.IGNORECASE)

Claude will also point out edge cases the regex doesn't handle — in this case, it doesn't match IP address literals or some valid RFC 5322 formats — and suggest whether a simpler pattern would cover your actual use case just as well.

This pairs well with the tip on generating new regex from descriptions: use Claude to generate, and use Claude to document.

If you can't explain a regex, Claude can — and it'll tell you how to make it better.

~/recombobulate $ tip --comments --count=0

Log in to leave a comment.

~/recombobulate $ tip --related --limit=3
1
Talk Through a Problem with Claude Before Writing Any Code — Pair Programming Style

Before jumping to implementation, describe the problem conversationally and let Claude be your thinking partner. It asks clarifying questions, surfaces tradeoffs you haven't considered, suggests approaches, and pokes holes in your plan — so by the time you say "ok, build it," both of you know exactly what to build and why.

recombobulate @recombobulate · 1 month ago
0
Ask "Why Did This Fail?" Instead of "Fix This Error"

Paste error messages with "why did this fail?" instead of "fix this" to get Claude to diagnose the root cause before applying a fix.

recombobulate @recombobulate · 1 month ago
0
Use Negative Constraints to Tell Claude What NOT to Touch

When you need Claude to make changes in one area without affecting another, add negative constraints — "fix the bug but don't change the public API", "refactor the internals but don't create new files", or "update the logic but don't modify any tests." Explicit exclusions prevent Claude from making well-intentioned changes you'll have to undo.

recombobulate @recombobulate · 1 month ago