utf8 strings: memory optimization and case-ignoring comparision