in reply to Changing case inside substitution

You are missing the + after your char class to catch the [pageN] bit ie [^]]+ Without that if fails to match.....

s/(\\cite\[[^]]+\]\{)([A-Z])/ $1 . lc($2) /ge;

cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print