Why [A-z] is almost never what you want
Ranges follow character codes, not the alphabet, so this one quietly includes six punctuation characters.
/^[A-z]+$/
Match a whole string consisting of one or more of "A" to "z".
What to check
Probably a bug
Character range spans more than it looks like
`A-z` covers punctuation as well as letters, because ranges follow character codes rather than the alphabet. [A-z] for example also matches [ \ ] ^ _ and `.
Fix: Write the ranges you mean explicitly: [A-Za-z].
Note
Anchors match string ends, not line ends
Without the m flag, ^ and $ match only the very start and end of the input — not the start and end of each line. On multi-line input this is often not what was intended.
Fix: Add the m flag if the pattern should apply per line.
Step by step
^Anchor to the start of the input.
[A-z]+Match one or more of "A" to "z".
$Anchor to the end of the input.
Details
- Capture groups
- None
- Flags
- None set
Check your own pattern
Paste one on the home page, or call the API or MCP server. This page is also available as markdown.