Estou escrevendo um trecho de código que usa correspondência de padrões em caracteres unicode, mas estou enfrentando um problema estranho. Alguns personagens funcionam e outros não.
DECLARE @Pattern nvarchar(50) = N'%[^a-z]%' -- Simple pattern
SELECT PatIndex(@Pattern, nchar(46797)), nchar(46797) -- Works
SELECT PatIndex(@Pattern, nchar(14843)), nchar(14843) -- Doesn't Work
O padrão deve buscar qualquer caractere que não seja az, mas por algum motivo não está capturando alguns caracteres. Alguém sabe por que alguns caracteres unicode combinariam e outros não?
Veja se fazer um agrupamento binário se encaixa no que você precisa. Aqui está um teste rápido.