http://www.perlmonks.org?node_id=1222583


in reply to Perl alternation regex looks ok to me?

Tip #9 from the Basic debugging checklist: YAPE::Regex::Explain

The regular expression: (?-imsx:^.T2|S) matches as follows: NODE EXPLANATION ---------------------------------------------------------------------- (?-imsx: group, but do not capture (case-sensitive) (with ^ and $ matching normally) (with . not matching \n) (matching whitespace and # normally): ---------------------------------------------------------------------- ^ the beginning of the string ---------------------------------------------------------------------- . any character except \n ---------------------------------------------------------------------- T2 'T2' ---------------------------------------------------------------------- | OR ---------------------------------------------------------------------- S 'S' ---------------------------------------------------------------------- ) end of grouping ----------------------------------------------------------------------
You should use parentheses to group the alternation:
/^.T(2|S)/
Or, if there is no need to capture:
/^.T(?:2|S)/

Replies are listed 'Best First'.
Re^2: Perl alternation regex looks ok to me?
by choroba (Cardinal) on Sep 18, 2018 at 14:16 UTC
    Or, if each alternative is one character
    /^.T[2S])/
    ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,