Pattern Modifiers
We’ll discuss the individual pattern-matching operators in a moment, but first we’d like to mention another thing they all have in common, modifiers.
Immediately following the final delimiter of an m//, s///,
qr//, y///, or tr/// operator, you may optionally place one
or more single-letter modifiers, in any order. For clarity, modifiers
are usually written as “the /i
modifier” and pronounced “the slash eye modifier”, even though the final
delimiter might be something other than a slash. (Sometimes people say
“flag” or “option” to mean “modifier”; that’s okay, too.)
Some modifiers change the behavior of the individual operator, so
we’ll describe those in detail later. Others change how the regex is
interpreted, so we’ll talk about them here. The m//, s///,
and qr// operators[89] all accept the following modifiers after their final
delimiter; see Table 5-1.
Table 5-1. Regular expression modifiers
| Modifier | Meaning |
|---|---|
/i | Ignore alphabetic case distinctions (case-insensitive). |
/s | Let . also match newline. |
/m | Let ^ and $ also match next to embedded \n. |
/x | Ignore (most) whitespace and permit comments in pattern. |
/o | Compile pattern once only. |
/p | Preserve ${^PREMATCH}, ${^MATCH}, and ${^POSTMATCH} variables. |
/d | Dual ASCII–Unicode mode charset behavior (old default). |
/a | ASCII charset behavior. |
/u | Unicode charset behavior (new default). |
/l | The runtime locale’s charset behavior (default under
use locale). |
The /i modifier says to match a character in any possible case variation; that is, to match case-insensitively, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access