Polybench® Reference
Describes the rules for the '~*~' and '!~*~' signs.

Contains similar (case insensitive) (~*~), or does not contain similar (!~*~)

Overview

Use the symbol
~*~
to notate the inequality 'contains similar', or
!~*~
to notate the inequality 'does not contain similar', where the comparison between expressions is case insensitive.

For example:

ABC ~*~ b AND ABC !~*~ D

means:

ABC contains a part similar to b and ABC does not contain a part similar to D

Details

The expressions a and b in the inequality a ~*~ b, or a !~*~ b should be substituted by any of the following:
- a fixed text string, for example hypertension
- a fixed numerical value, for example 12.3, also valid is 12,3
- a global variable, for example $hour$
- any other variable or variable parameter, for example $Design.Constant 1.Value$, or $LastName$.

Variables are substituted by their current values at the time the inequality is processed. Spaces around the expressions are trimmed automatically.

The way the inequality is solved depends on the type of its expressions:

Both expressions are numbers
Because there is no numerical representation of 'contains', the inequality is always handled as text.

Both expressions are textual
If a text string is to be compared to another text string, then comparison is case insensitive.
For example:
Hello ~*~ ELL evaluates to TRUE, because the second expression is part of the first (irrespective of letter case)
$var$ !~*~ morning evaluates to FALSE in case the variable $var$ has been set to "GOOD MORNING".

One of both expressions is textual, the other is a number
If one of both expressions is a text, then the other expression is also handled like text.