Вы можете использовать перспективные взгляды.Вы не сказали, какой «вкус» регулярного выражения вы используете, поэтому вот пример C #:
var regex = new Regex(@"[A-Z](?=[a-z])");
string str = "ABcDef";
regex.Replace(str, "?");
Console.WriteLine(str); // outputs "A?c?ef"
Кроме того, для международных символов вы можете использовать классы символов Unicode :
var regex = new Regex(@"\p{Lu}(?=\p{Ll})");