How does string sorting work?

Hello!

I’m making a matchmaking system and I’m running into issues with GetRangeAsync and its lower and upper bound params. My goal is to find a value who’s key contains a specific sub string but it ends up finding every key that is similar.

local Memory = game:GetService('MemoryStoreService')
local Map = Memory:GetSortedMap('e')

Map:SetAsync('ee 45Hello10', 'hi', 20)
print(Map:GetRangeAsync(Enum.SortDirection.Descending, 1, '0145Hello')) -- Returns the key set previously

Map:SetAsync('ee 5Hello10', 'hi', 20)
print(Map:GetRangeAsync(Enum.SortDirection.Descending, 1, '0145Hello')) -- Returns the key with the missing 4

So is it possible to only find the the specific sub string whiteout the strings that are similar?