I didn't formalise the tests last night, but see the attached file, which passes cleanly on NetBSD and the illumos gate. On musl with 1/2 I get $ ~/store/code/musl/prefix/bin/musl-clang tst-reg-startend.c -o \ /tmp/tst-reg-startend -DSTANDALONE -static && /tmp/tst-reg-startend 2>&1 | cat -A tst-reg-startend.c: ^a.c$: ac: no match tst-reg-startend.c: ^a.*c$: ac: no match tst-reg-startend.c: ^a[^c]c$: ac: no match tst-reg-startend.c: ^a..: ac: no match tst-reg-startend.c: ..c: ac: no match tst-reg-startend.c: [^z]c: ac: no match tst-reg-startend.c: [^z]c: ac: wanted {2, 4}, got {1, 4} And with 2/2 it passes cleanly. glibc gives me a host of errors, but I'll post fixes and include this test there later. Best, наб Please keep me in CC.