как преобразовать sort из c++ в паскаль?

у меня есть код на с++, его нужно в точности сделать таким же на паскале, но не получается отсортировать как в с++ сам код с++

    #include<iostream>
    #include<algorithm>
    #include<cctype>
    #include <string>
    using namespace std;
    int main() {
        char text[20] = "yH6&g%1vv/123G%3f*v";
        char text2[20];
        memcpy(text2, text,sizeof(text));
        sort(text2, text2 + sizeof(text2), [](char a, char b) {
            return (isdigit(a) && (!isdigit(b)) || isalpha(a) && (!isalnum(b)));
            });
        cout<< text2<< "\n";
    }

код на паскале

type
sizeovf = array[1..4] of char;
var
text: sizeovf := ('a','b','1',']');
text2: sizeovf;
begin
text2 := text;  //copy
sort(text2, text2 + sizeof(text2), [](char a, char b));
    if (isdigit(a) (!isdigit(b)) || isalpha(a) && (!isalnum(b)))then writeln (text2);//не работает
end.

Ответы (1 шт):

Автор решения: RAlex
##
var text := 'yH6&g%1vv/123G%3f*v';
var text2 := (text.MatchValues('\d') + text.MatchValues('[A-z]') + 
    text.MatchValues('[^A-z0-9]')).JoinToString('');
text2.Println // получится 611233yHgvvGfv&%/%*
→ Ссылка