The pattern cache for the SpEL matches operator only applies to expressions such as the following where the same matches operator is invoked multiple times with different input:

map.keySet().?[#this matches '.+xyz']

The pattern cache does not apply to expressions such as the following where the same pattern (.+xyz) is used in multiple matches operations:

foo matches '.+xyz' AND bar matches '.+xyz'

We should increase the scope of the regex pattern cache for the SpEL matches operator so that the cache can be reused for all matches operations for the given parser.