You can match the first capital letter with ^([A-Z])
:
sed -E 's/^([A-Z])|[[:blank:]]+([A-Za-z])/\l\1\U\2/g'
or
sed -E 's/^([[:upper:]])|[[:blank:]]+([[:alpha:]])/\l\1\U\2/g'
Then change the value of group 1 to lower case, and the second group (as you already do) to upper case. See the online demo .
More details
^([[:upper:]])
- matches the beginning of a line, and then writes an uppercase letter to group 1|
- or[[:blank:]]+
- 1([[:alpha:]])
- 2
\l\1
1 , \U\2
2 .