Which Regex flavor does Xbench use?


#1

I am trying regex searches with Xbench, but they do not seem to process sequences like \w or \b.

Which regex flavor is used in Xbench?


MultiTerm- KeyTerm Mismatches - Reducing False positives results
How to match a particular word except for occurrences in square brackets
#2

Xbench uses POSIX ERE flavor with two “syntactic sugar” exceptions:

  • < and > are word delimiters as syntactic sugar (instead of [:<:] and [:>:]).
  • Classes can be specified directly (for example [:digit:] ), instead of enclosed in a set ([[:digit:]]).

Issue with a non-greedy quantifier
#3

But can you make the standard \w and \b be accepted and work too, as well as the sugar exceptions? There are lots of regexes out there written with \w and \b. Thanks


#4

One of the reasons why the Xbench 3.0 regex grammar does not include commands common in other regex flavors such as \b or \w is to try to maintain compatibility with Xbench 2.9, whose development was frozen in 2011.

The goal is that when someone develops a Xbench checklist with Xbench 3.0, that checklist can be also used with Xbench 2.9 because many of our users in Xbench 3.0 share checklists with suppliers or colleagues who still use Xbench 2.9.

Xbench 3.0 has some fixes on our regex engine that Xbench 2.9 does not, so strictly speaking, compatibility between Xbench 3.0 and Xbench 2.9 checklists is not 100%, but it probably still is a 99.99%.

If we added extensions to the regex grammar such as including alternatives (i.e. \w and \b), the degree of compatibility between 3.0 and 2.9 would be greatly reduced as more and more users started to use them. This would trigger many support calls by Xbench 2.9 users to maintainers of the checklists.

That said, if future additions of new features to checklists in Xbench 3.0 implies such changes in the checklist file format that make no longer possible maintaining compatibility with Xbench 2.9, then we would be a lot more open to revising the regex grammar in Xbench 3.0.


#5

Hi, just to maybe facilitate for people creating regexes, please confirm:
I can’t use: /b /w /s /d
Instead I have to use <> [:alpha:] [:space:] [:digit:]

I am doing a presentation using Xbench, this will be useful for people there.
Any other difference that you would highlight?

Thanks


#6

Just one more, please confirm:
In other systems, when I want to specify non-digits I can used /D - the capitalized D indicates that I don’t want “no-characters”. To do the same in Xbench I need to write this:[^[:digit:]], correct?

I may move from CheckMate to Xbench and I will need to convert my regexes, this will really help.
Thanks


#7

If by non-digits you mean letters (not symbols), you can use the [:letter:] class. In the online help there is a table with the POSIX classes available.