How a rule reads one of its strings — the producer saying so, because the
string itself cannot.
'regex' is a regular-expression SOURCE: the WHOLE string is the pattern,
slashes included. 'literal' is exact text that is never a pattern, however
it happens to be spelled. Absent means free text a human typed into a chip
field, which keeps the Lists-panel convention (#1591): a /body/flags
literal is a pattern, anything else is plain text.
Guessing this back out of the text is the #4091 defect class — matched the
wrong thing, said nothing — reappearing at the adapter seam. The selector
grammar knows which it parsed: quoting is its ONLY escape hatch for a
literal name, so "/Wall/".FireRating is the plain name /Wall/, and
Name=//tmp// is the source /tmp/. Sniffed for slashes, the first
matches every …Wall… set and the second matches tmp.
A property-set or property NAME has no operator beside it, so both kinds
have to be declared. A VALUE's op already says whether it is a pattern, so
only 'regex' is ever recorded there.
How a rule reads one of its strings — the producer saying so, because the string itself cannot.
'regex'is a regular-expression SOURCE: the WHOLE string is the pattern, slashes included.'literal'is exact text that is never a pattern, however it happens to be spelled. Absent means free text a human typed into a chip field, which keeps the Lists-panel convention (#1591): a/body/flagsliteral is a pattern, anything else is plain text.Guessing this back out of the text is the #4091 defect class — matched the wrong thing, said nothing — reappearing at the adapter seam. The selector grammar knows which it parsed: quoting is its ONLY escape hatch for a literal name, so
"/Wall/".FireRatingis the plain name/Wall/, andName=//tmp//is the source/tmp/. Sniffed for slashes, the first matches every…Wall…set and the second matchestmp.A property-set or property NAME has no operator beside it, so both kinds have to be declared. A VALUE's op already says whether it is a pattern, so only
'regex'is ever recorded there.