s/([a-z]+)(?=(.?))/ uc($1) . (length($2) ? "_" : "") /ge;