in reply to Re: Can you assign to pos() in a s/foo/bar/g
in thread Can you assign to pos() in a s/foo/bar/g

Ace! That's exactly what I was missing. I had tried \G without success but hadn't thought to put it in an alternation. Adapting your solution to use a look-behind so that I'm not replacing something with itself gives us

#!/usr/local/bin/perl -l # use strict; use warnings; $_ = q{DFR7234C__A_B_C_Bonzo_Dog_D_B}; print; s{(?:(?<=__)|\G)[A-Z]_}{}g; print;

which produces the desired

DFR7234C__A_B_C_Bonzo_Dog_D_B DFR7234C__Bonzo_Dog_D_B

Your solution doesn't require any messing about with pos() which is a plus, but I am still wondering whether such tinkering is possible.

Thank you,

JohnGG