in reply to Matching delimiters

Try this

use Regexp::Common; use Regexp::Common::balanced; $str=~s#\\caption($RE{balanced}{-begin=>"{"}{-end=>"}"}{-keep})#<capti +on>$1</caption>#sgi;

Vivid