Эту, явно конкурсную задачу, придумали люди, незнакомые с возможностями языка PascalABC.NET 3.3. Потому что на нем она решается буквально в одну строчку и за время, нужное, чтобы эту строчку написать.
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
ReadlnString.RegexReplace('[^A-Za-zА-Яа-яЁё0-9 ]','')
.MatchValues('[A-ZА-ЯЁ][^A-ZА-ЯЁ]+').PrintLines;
end.