std::regex_traits::translate_nocase

From cppreference.com
CharT translate_nocase(CharT c) const;

Obtains the comparison key for the character c, such that all characters that are equivalent to this character in the imbued locale, ignoring the case differences, if any, produce the same key.

When the regex library needs to match two characters c1 and c2 and the flag std::regex_constants::icase is true, it executes regex_traits<>::translate_nocase(c1) == regex_traits<>::translate_nocase(c2).

Standard library specializations of std::regex_traits return std::use_facet<std::ctype<CharT>>(getloc()).tolower(c), that is, convert c to lowercase, using the currently imbued locale.

[edit] Parameters

c - character that needs to be examined for equivalence, ignoring case

[edit] Return value

The case-insensitive comparison key for c in the currently imbued locale.

[edit] Example