The Roslyn VB compiler interprets "case-insensitive" to to mean "the same when individual characters are mapped to lower-case using the one-to-one Unicode lower-case mapping (i.e. the Simple_Lowercase_Mapping field from UnicodeData.txt, which excludes mappings that would result in a single character being transformed into multiple characters).
I always thought case-insensitive was always best based on converting to uppercase. (I believe I'm basing that on a Microsoft thing, but I don't recall now,)
The Roslyn VB compiler interprets "case-insensitive" to to mean "the same when individual characters are mapped to lower-case using the one-to-one Unicode lower-case mapping (i.e. the Simple_Lowercase_Mapping field from UnicodeData.txt, which excludes mappings that would result in a single character being transformed into multiple characters).
(moved from https://github.com/dotnet/roslyn/issues/2649)