Please post your test code and output in something like the format shown below, and please use code tags; I can't really understand your regex without guessing! Please also give your expected/desired output; "it does not work" does not tell me very much.
c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -e "my @test = qw(RC1XY RS RW12QW1X FOO FOOx FOO23PQ xFOO23PQXXX foo xyzz +y); ;; for my $s (@test) { printf qq{'$s' -> }; if (my ($p_r, $d1, $p_mc, $p_new_mc) = $s =~ m{ ([[:upper:]]+) (\d*) ([[:upper:]]?) ([[:upper:]]?) }xms) { dd $p_r, $d1, $p_mc, $p_new_mc; } else { print qq{no match \n}; } } " 'RC1XY' -> ("RC", 1, "X", "Y") 'RS' -> ("RS", "", "", "") 'RW12QW1X' -> ("RW", 12, "Q", "W") 'FOO' -> ("FOO", "", "", "") 'FOOx' -> ("FOO", "", "", "") 'FOO23PQ' -> ("FOO", 23, "P", "Q") 'xFOO23PQXXX' -> ("FOO", 23, "P", "Q") 'foo' -> no match 'xyzzy' -> no match
Give a man a fish: <%-(-(-(-<
In reply to Re^5: Question on Regular Expression
by AnomalousMonk
in thread Question on Regular Expression
by sjain
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |