For the sake of consistency (with buff-imp-xml.lua), I think the patch should read [...] +local alsoname = lpatterns.utf8two + lpatterns.utf8three + lpatterns.utf8four
I think that that pattern is a little too broad, since it will match any non-ASCII Unicode character. Things like U+202E (xkcd.com/1137), U+00A0 (no-break space), etc are valid UTF-8 characters, but not valid XML tag names. Neither of these two characters are matched by the TeX catcode check. This doesn't make any real difference for a syntax highlighter though.
+local name = (R("az","AZ","09") + S("_-.") + + alsoname)^1
There's a doubled plus in the middle there. The patch works when I remove it.
But I’m afraid I cannot make it work on my computer (Linux64).
On another Win64 computer, both patches worked perfectly fine.
Hmm, that's really weird. Both patches work for me on my main Win64 computer (after I fixed the extra plus). I also pulled the "contextgarden/context:lmtx" Docker image (Debian sid), and both patches worked there too. I get this from inside the container: root@e8d29a32595c:~# cat /etc/os-release PRETTY_NAME="Debian GNU/Linux bookworm/sid" NAME="Debian GNU/Linux" ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" root@e8d29a32595c:~# locale LANG= LANGUAGE= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="POSIX" LC_MESSAGES="POSIX" LC_PAPER="POSIX" LC_NAME="POSIX" LC_ADDRESS="POSIX" LC_TELEPHONE="POSIX" LC_MEASUREMENT="POSIX" LC_IDENTIFICATION="POSIX" LC_ALL= root@e8d29a32595c:~# xxd test.tex 00000000: 5c75 7365 6d6f 6475 6c65 5b73 6369 7465 \usemodule[scite 00000010: 5d0a 5c73 7461 7274 7465 7874 0a5c 7374 ].\starttext.\st 00000020: 6172 7454 4558 7061 6765 5b6f 6666 7365 artTEXpage[offse 00000030: 743d 3165 785d 0a5c 7479 7065 5b6f 7074 t=1ex].\type[opt 00000040: 696f 6e3d 786d 6c5d 7b3c 616e 732f 3e7d ion=xml]{<ans/>} 00000050: 0a5c 7479 7065 5b6f 7074 696f 6e3d 786d .\type[option=xm 00000060: 6c5d 7b3c c3a1 c3b1 c39f 2f3e 7d0a 5c73 l]{<....../>}.\s 00000070: 746f 7054 4558 7061 6765 0a5c 7374 6f70 topTEXpage.\stop 00000080: 7465 7874 0a text root@e8d29a32595c:~# context --version mtx-context | ConTeXt Process Management 1.04 mtx-context | mtx-context | main context file: [snip] mtx-context | current version: 2022.05.11 11:36 mtx-context | main context file: [snip] mtx-context | current version: 2022.05.11 11:36 ldd "$(type -p luametatex)" linux-vdso.so.1 (0x00007ffdbe9a5000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4b034d4000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4b034b3000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4b0336f000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4b03196000) /lib64/ld-linux-x86-64.so.2 (0x00007f4b03a55000) Is this perhaps a weird locale or encoding issue? Maybe try compiling with: LC_ALL=C.UTF-8 LANG=C.UTF-8 context test.tex or LC_ALL=POSIX LANG=POSIX context test.tex I'm surprised Linux is the one not working here, since it's usually Windows that has text encoding issues with its weird hybrid of DOS codepages and UTF-16+BOM. The only other thing that I can think of is a weird library issue with your distro, but LuaMetaTeX is statically linked. Not sure what else to check here. -- Max