I just don't know what's wrong with this simple method :
Whether ACAD_STRLSORT is appropriate depends on the expected result and on how well ordered the data is.
(acad_strlsort '("P3" "P1" "P2" "P123" "P11"))
; ("P1" "P11" "P123" "P2" "P3")
If what you want is ASCII order it is fine. For most of my purposes I would want the result to be P1, P2, P3, P11, P123