Bash 4 had parameter expansion operations which allowed to convert string stored in variable to upper/lower case using ${v^}, ${v^^}, ${v,}, or ${v,,}. In Bash 5 new @ notation was added to provide various expansion operations, some of which also include case conversions: ${v^} == ${v@u}, ${v^^} == ${v@U}, ${v,,} == ${v@L} (no matching operator for ${v,} it seems).
What is the difference between ${v^^} and ${v@U}, and for what purpose new operators that do the same thing were added?