regex = /([^\s@]+)((?:@[^\s@]+)*@)([^\s@]+)/
text = "aaa@xxx@bbb aaa@xxx@bbb aaa@bbb aaa@xxx@xxx@xxx@bbb"
puts(text.gsub(regex){"#{$1.upcase}#{$2}#{$3.upcase}"})
cmVnZXggPSAvKFteXHNAXSspKCg/OkBbXlxzQF0rKSpAKShbXlxzQF0rKS8KdGV4dCA9ICJhYWFAeHh4QGJiYiBhYWFAeHh4QGJiYiBhYWFAYmJiIGFhYUB4eHhAeHh4QHh4eEBiYmIiCgpwdXRzKHRleHQuZ3N1YihyZWdleCl7IiN7JDEudXBjYXNlfSN7JDJ9I3skMy51cGNhc2V9In0p