Ehoogerbeets

Updated for iLib, and added many new rows for various i18n features. Other libraries slots need to be updated to put the check marks for all these new features.
Input: "z", "Q", "m", "A", "u", "a", "Z", "w", "B", "b"

1. with "options": {upperFirst: false, reverse: false}

"A", "a", "B", "b", "m", "Q", "u", "w", "Z", "z"

2. with "options": {upperFirst: true, reverse: false}

"A", "B", "Q", "Z", "a", "b", "m", "u", "w", "z"

3. with "options": {upperFirst: false, reverse: true}

"z", "Z", "w", "u", "Q", "m", "b", "B", "a", "A"

4. with "options": {upperFirst: true, reverse: true}

"Z", "Q", "B", "A", "z", "w", "u", "m", "b", "a"

Case number 3 above is the same as what you were talking about. In that case, array.sort(collationFunction).reverse() is the same as array.sort(reverseCollationFunction). Case number 4 is not. When sorting strings written in a number of different scripts, case number 4 can be more generalized to sorting in reverse within each script. That is, the scripts (or case) remain in the same order as before, but within that script or case, the order is reversed.