Compares two strings, ignoring case using specified Unicode rules.
lispworks
unicode-string-equal string1 string2 &key start1 end1 start2 end2 style => flag
unicode-string-not-equal string1 string2 &key start1 end1 start2 end2 style => mismatch-index
| string1⇩ | 
A string designator. | 
| string2⇩ | 
A string designator. | 
| 
Bounding index designators of string1. | |
| 
Bounding index designators of string2. | |
| style⇩ | 
A keyword. | 
| flag⇩ | 
A generalized boolean. | 
| mismatch-index⇩ | 
A bounding index of string1 or  nil. | 
The functions unicode-string-equal and unicode-string-not-equal compare the designated substrings of string1 and string2, ignoring case using Unicode rules specified by style. The values of start1 and start2 default to 0, while the values of end1 and end2 default to nil.
The returned value flag of unicode-string-equal is true if the strings are equal and false otherwise.
The returned value mismatch-index of unicode-string-not-equal is the index where the strings mismatch (as an offset from the beginning of string1) or nil otherwise.
The current implementation only supports one style of comparison:
| :simple-case-fold | Compares each character of the strings using the simple case folding rules in Unicode 6.3.0. | 
LispWorks® User Guide and Reference Manual - 01 Dec 2021 19:30:41