s = 'df\xc3\xa4g'
w = re.sub('(?![\\d_])\\w', 'X', s.decode('utf8'), 0, re.UNICODE).encode(
    'utf8')
print(w)
Can the [a-zA-Z] Python regex pattern be made to match and replace non-ASCII Unicode characters?