#!/usr/bin/perl use strict; use warnings; no warnings "uninitialized"; my $patt = 'a\Ubc'; $patt =~ s/(^|[^\\])(\\\\)*\\U(.*?)(?:\\E|$)/$1.$2.uc($3)/se; $patt = qr/$patt/; my $target = 'aBC'; print "'$target' =~ $patt\n"; print $target =~ $patt; print $/;