Compare a rule's property-set / property name against a row's.
kind is the rule saying what it holds (see TextKind). A 'regex'
name is a SOURCE and the whole string is the pattern, which is what makes
the selector syntax's /Pset_.*Common/.FireRating reach Pset_WallCommon
and Pset_SlabCommon in one rule; a 'literal' name is compared as text
even when it is spelled with slashes, which is what the grammar's quoting
means and the only reason "/Wall/".FireRating can be asked for at all.
A name with no declared kind was typed into a chip field, where the
Lists-panel /…/ convention (#1591) is the user's only way to say
"pattern"; anything else there is the historical case-insensitive equality.
compileNameMatcher throws when the regex body is syntactically valid but
rejected by @ifc-lite/regex-guard as unsafe (catastrophic-backtracking
shaped, or over the length cap) — see filter-ops.ts's regexOpMatches
docstring for the full contract. This function does not catch that; it
propagates to filter-evaluate.ts's caller, which must.
Compare a rule's property-set / property name against a row's.
kindis the rule saying what it holds (see TextKind). A'regex'name is a SOURCE and the whole string is the pattern, which is what makes the selector syntax's/Pset_.*Common/.FireRatingreachPset_WallCommonandPset_SlabCommonin one rule; a'literal'name is compared as text even when it is spelled with slashes, which is what the grammar's quoting means and the only reason"/Wall/".FireRatingcan be asked for at all.A name with no declared kind was typed into a chip field, where the Lists-panel
/…/convention (#1591) is the user's only way to say "pattern"; anything else there is the historical case-insensitive equality.compileNameMatcherthrows when the regex body is syntactically valid but rejected by@ifc-lite/regex-guardas unsafe (catastrophic-backtracking shaped, or over the length cap) — seefilter-ops.ts'sregexOpMatchesdocstring for the full contract. This function does not catch that; it propagates tofilter-evaluate.ts's caller, which must.