Quamina provides APIs to create an interface called a Matcher, add multiple patterns to it, and then query JSON blobs called events to discover which of the patterns match the fields in the event.
The structure of the pattern, in terms of field names and nesting, must be the same as the structure of the event to be matched. The field values are always given as an array; if any element of the array matches the value in the event, the match is good. If the field in the event is array-valued, matching is true if the intersection of the arrays is non-empty.
Fields which are not mentioned in the pattern will be assumed to match, but all Fields mentioned must match. So the semantics are effectively an OR on each field's values, but an AND on the field names.
Note that the shellstyle patterns can include only one * character. The architecture probably allows support for a larger subset of regular expressions but currently, the testing for just the single -* patterns is a bit lacking.