$k = 0; $string=~s@(?:<(?{++$k})|>(?{--$k}))*([^<>]*)@$k?uc($1):$1@ge;