Comparison Operators
The comparison operators available are <, <=, ==, !=, >=, and >. The == and != operators always work as a case-sensitive comparison. Examples:
$Name > $AttribName
$AttribName > $AttribName(path)
$Created > $Created(parent)
$Name < $Text
$BorderColor == $Color
For case-sensitive matches, use String.contains("pattern"), e.g. $MyString.contains("dog")
, where the pattern is a string literal or regular expression. Using String.icontains("pattern") forces a case-insensitive match. The same applies to Lists and Sets, see also Querying Lists and Sets.
Pattern matches (via both old and new style contains) are case-sensitive by default, but when used in the context of an agent this can be modified. This is done by setting the agent's $AgentCaseSensistive attribute to False.
Thus, a case-insensitive 'dog' pattern could match all case variants of 'dog' (dog, Dog, DOG, etc.). However, as this would also match a value of 'big dog', the degree of match of the pattern can be restricted further by regular expression string delimiters, e.g. $MyString.contains("^^dog$")
. The caret (^) forces matching to start at the beginning of the string; note that it has to be doubled so as to escape it for Tinderbox, i.e. tell the program the symbol is not - in this context - export mark-up code. Similarly, the $ forces the match to run all the way to the end of a value string. This therefore excludes longer strings that might contain the word in question. The use of the $ in a regular expression should not be confused with the $AttributeName usage, which simply references an attribute's value.