#!/usr/bin/perl my $qr; $qr = qr!(?:\<(?:(?>[^\<\>]+)|(??{$qr}))*\>)!; $_ = "< a> a "; s/($qr)/\U$1/g; print;