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

Ends with similar (case insensitive) (~*), or does not end with similar(!~*)

Overview

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

For example:

ABC ~* c AND ABC !~* a

means:

ABC ends with a part similar to c and ABC does not end with a part similar to a

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 'ends with', 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 ~* ELLO evaluates to TRUE, because the first expression ends with the second (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.