Striim 3.9.4 / 3.9.5 documentation

Matching overlapping patterns ( # )

Suppose you would like to match the sequence ABA and the stream contains events ABABA. Normally the first instance (ABA)BA will be matched, but the second instance AB(ABA) will not be matched. If you would like both instances to be matched, include a ( # ) operator in the pattern wherever you would like the engine to restart its matching (for example, AB#ABA). If the pattern contains multiple # operators, the matching restarts from the earliest occurrence of the last successful match.

For example, consider this pattern:

PATTERN A (B # A | C D # A)

If the actual event sequence is ABACDABACDA, the following subsequences will be matched:

  • ABA

  • ACDA

  • ABA

  • ACDA