Write a function that takes a string as input and returns a new string where only the vowels are reversed, while all the other characters remain in their original positions.
a, e, i, o, u
(both lowercase and uppercase)."Hello, World!"
"Holle, Werld!"
This problem tests your string manipulation skills. Consider edge cases like strings without vowels or with only one vowel.
Optionally, as today is February 9, you can think of this as a mini-celebration of creative problem solving as, historically, many innovations occurred in February that reshaped technology and culture.