Given an array of strings, group the words into lists of anagrams and return the collection of groups in any order. For example, ["abc", "cab", "edf"] -> [["abc", "cab"], ["edf"]]. Aim for near-linear time in the total number of characters. Specify how you handle case sensitivity, non-ASCII characters, and very long strings, and choose an approach that avoids sorting each string if possible.