lc $new # lowercase the replacement ^ $1 # XOR with $1 - will increase the values by # the corresponding ascii value of each character # of $1 ^ lc $1 # XOR with lc $1 - basically, it will subract the # ascii values of lowercase $1 - if the values were # lowercase to begin with, the resulting sum is 0, # otherwise, the increase is enough to uppercase # the corresponding character