4 ตัวอักษรที่มีเครื่องหมายทับ 2 โดยไม่มี
ในเอ็นจิน regex ของภาษา TXR คลาสอักขระว่างเปล่า[]
ไม่ตรงกับอักขระดังนั้นจึงไม่มีสตริง มันจะทำงานแบบนี้เพราะคลาสตัวละครต้องมีการจับคู่ตัวละครและเมื่อมันว่างเปล่าก็ระบุว่าไม่มีตัวละครที่สามารถตอบสนองได้
อีกวิธีหนึ่งคือการกลับว่า "ชุดของสตริงทั้งหมดรวมทั้งที่ว่างเปล่า" regex ใช้ประกอบสมบูรณ์:/.*/
/~.*/
ส่วนเสริมของชุดนั้นไม่มีสตริงเลยดังนั้นจึงไม่สามารถจับคู่สิ่งใด ๆ ได้
นี่คือเอกสารทั้งหมดใน man page:
nomatch
The nomatch regular expression represents the empty set: it
matches no strings at all, not even the empty string. There is
no dedicated syntax to directly express nomatch in the regex
language. However, the empty character class [] is equivalent
to nomatch, and may be considered to be a notation for it. Other
representations of nomatch are possible: for instance, the regex
~.* which is the complement of the regex that denotes the set of
all possible strings, and thus denotes the empty set. A nomatch
has uses; for instance, it can be used to temporarily "comment
out" regular expressions. The regex ([]abc|xyz) is equivalent to
(xyz), since the []abc branch cannot match anything. Using [] to
"block" a subexpression allows you to leave it in place, then
enable it later by removing the "block".
เครื่องหมายทับไม่ได้เป็นส่วนหนึ่งของไวยากรณ์ regex ต่อ se; พวกเขาเป็นเพียงเครื่องหมายวรรคตอนที่ delimits regexes ในสัญกรณ์ S-expression พยาน:
# match line of input with x variable, and then parse that as a regex
#
$ txr -c '@x
@(do (print (regex-parse x)) (put-char #\newline))' -
ab.*c <- input from tty: no slashes.
(compound #\a #\b (0+ wild) #\c) <- output: AST of regex