Bash, 78, 7676 71 bytes
for c in {B..a};{ [[ -n ${1// } ]]&&echo "$1";set "${1//[!$c-Z${c,}-z]/ }";}
Depending on collation (default LC_ALL) can save some more bytes
for c in {b..z} _;{ [[ -n ${1// } ]]&&echo "$1";set "${1//[!$c-Z]/ }";}
[Try It Online][1] [1]: https://tio.run/##Fcq9CsMgGEbhW3kj4lQTMru1Q9fMEQdrzQ8kCtouitf@Nd0OPOdl80a0xASHPaDe@942VaE1ZACv4zCgwRghvNsiGB@Zyv5zxZ90x52ceXW3Jou5TqYaEU0prsme5x5WTN9SDp8h8Ihvj2c8lu4H##Fcq9DoMgFIbhW/kkhE2NM2OHrs4lpFGKP4lyErALhGs/tdubPO88pY15oQiHPaDMXZcr3rrAGLQBsgx9jwprlfJuIwg5CJ38dcefTCNd@7L3InRl5jHSGqfz3MOK8Zvz4RMUHvTxeNKxND8