Thanks. It looks like we now have

.alpha = $sorttok no-switch
.alphacs = $sorttokcs no-switch

Observation about the newly added props.

1. I can't find any difference in the output between the new .props $min().text $max().text vs the prior .props of $min().alnum $max().alnum, so I'm wondering if these are 2 names for the same thing or is there an edge-case I'm missing?

2. When comparing against aliases that used $sorttok to find min/max, where $min would be the 1st token and $max would be the final token, I've not found a variance in how $min behaves, but there is an edge case in how $max differs.

The behavior of sorttok has always been that tokens with equivalent values are placed into the output in the same order as in the input string. So, when $sorttok was being used as a replacement for $max, it returned max as the last token. When there are several tokens which are either case-insensitive or numerical equivalents, $max is returning the first of the equivalents instead of the last of the equivalents.

For numerical sorts, where text evaluates as zero, if the string has no numeric tokens, the $max result is always the 1st text token, causing $max to always match $min:

//var -s %s $r(a,z) $r(a,z) $r(a,z) , %s %s $upper(%s) | echo -a $max(%s) and $min(%s) are both the first of $sorttok(%s,32,n)

typical result:
* Set %s to e i a
* Set %s to e i a E I A
e and e are both the first of e i a E I A

For case-insensitive text sorting, if the max value has upper/lowercase equivalents, the first equivalent token is the max instead of the last equivalent token:

//var %s1 Z z , %s2 z Z | echo -a min $min(%s1).text and max $max(%s1).text or min $min(%s2).text and max $max(%s2).text vs sorttok: $sorttok(%s1,32,a) or $sorttok(%s2,32,a)

result: Z and Z or z and z vs sorttok: Z z or z Z

I can see the logic of both definitions for max, and I'm guessing that the change to the $sorttok style behavior would be a line of code that's similar to "if (next_token > max) then max = next_token" and change the > into >=