Reverse a string while keeping special characters in place.
Treat alphabetic characters as reversible and every non-letter character, including digits, punctuation, and spaces, as fixed. Return a new string with the letters reversed and all other characters unchanged at their original indices.
The function receives one string s and returns a string. The input may contain uppercase and lowercase English letters, digits, punctuation, spaces, or no characters.
def reverse_string_preserve_specials(s):