You may wish to try the following syntax:
(MAIL) AND (READ OR OPENED) AND (<ABC, String> DOESNOTCONTAIN “”X””)
This may or may not work, depending on your application – this does a ‘not contains’, as opposed to ‘does not equal’, which I’m not sure is possible with the filter syntax.
If this is not acceptable, you may need to perform two processes: one to filter on MAIL and READ or OPENED, then iterate through the resulting message list and process only those messages that do not contain a single ‘X’ in the ABC field.
I hope this helps.