4 chars with slashes 2 without
In the TXR language's regex engine, an empty character class
 matches no character, and therefore no string. It behaves this way because the character class requires a character match, and when it is empty it specifies that no character can satisfy it.
Another way is to invert the "set of all strings including empty" regex
/.*/ using the complement operator:
/~.*/. The complement of that set contains no strings at all, and so cannot match anything.
This is all documented in the man page:
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".
The slashes are not part of the regex syntax per se; they are just punctuation which delimits regexes in the S-expression notation. Witness:
# 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