Before:
if (auto start = s.find(c); start != std::string::npos) { std::transform(s.begin() + start, s.begin() + start + c.size(), s.begin() + start, [](unsigned char c) { return std::toupper(c); }); }
After:
if (auto start = s.xfind(c); start != s.end()) { std::transform(start, start + c.size(), start, [](unsigned char c){ return std::toupper(c); }); }