in reply to Converting BCBCBCBCBCCCB to (BC)^{5}CCB

some good advice has been given above. if performance is of any concern, you'll save a little time by compiling the regex only once, by using the -o modifier, such as my $exp = $source =~ s/$group//go; to borrow gmax's solution for illustration.

of course, direct interpolation of the pattern will be even faster, such as my $exp = $source =~ s/BC//g;

my benchmark results look like:

C:\WINDOWS\Desktop>perl test_regex-o.pl Benchmark: timing 100000 iterations of s_direct, s_witho, s_withouto.. +. s_direct: 4 wallclock secs ( 3.02 usr + 0.00 sys = 3.02 CPU) @ 33 +112.58/s (n=100000) s_witho: 4 wallclock secs ( 3.41 usr + 0.00 sys = 3.41 CPU) @ 29 +325.51/s (n=100000) s_withouto: 5 wallclock secs ( 4.28 usr + 0.00 sys = 4.28 CPU) @ 23 +364.49/s (n=100000)

~Particle