Hi again, I'm very sorry: the mail was out and I found an error in the program (corrected version attached). This perhaps answers my unsureness about '.': $ printf ".\na\0b\n" | ./test_regex Compiling regex "." Testing string "610062"... regexec match: pos 0 length 1 "a" Testing string "0062"... regexec match: pos 2 length 1 "b" But this expression matches '\0': $ printf "[^\\\x01-\\\xff]\na\0b\n" | ./test_regex Compiling regex "[^\x01-\xff]" Testing string "610062"... regexec match: pos 0 length 1 "a" Testing string "0062"... regexec match: pos 1 length 1 "" Testing string "62"... regexec match: pos 2 length 1 "b" Regards, Dirk