$Attribute notation
From v4.6.0, although legacy syntax may be supported, all references to attributes in Action code (including Rules) should use a '$' prefix.
$AttributeName=value
$AttributeName=$AttributeName
$AttributeName=$AttributeName(where)
$AttributeName(where)=$AttributeName(where)
Long term users must note that either/both the left or right-hand expressions must begin with a '$'.
Do not mix $Attribute(path) and AttributeName(pattern) syntax in a single statements, i.e. as in $AttributeName(pattern), as this will cause unexpected results. Thus, the incorrect query syntax
$AttributeName(pattern)
is most likely actually understood by Tinderbox as "The value of attribute $AttributeName for the note whose name or path is 'pattern' ". The converse error (because of the omitted $ prefix) would be:
AttributeName(path)
Now Tinderbox will interpret this as "match the notes whose AttributeName attribute contains the regular expression pattern 'path'". Since v4.6.0, Tinderbox has attempted to support legacy code usage alongside the new forms, but don't expect such support to continue. It is thus worth coming to an understanding of the different implications of $Attribute(path) and AttributeName(pattern). Indeed, AttributeName(pattern) is now deprecated for String/List/Set.contains("pattern").
Examples of $Attribute(path) usage:
$Name(parent)="archives"
if($ChildCount(parent)>6)
Examples of Attribute(pattern) usage (in an agent query):
Name(Fred)
returns noes whose title includes 'Fred'