It doesn't like variable length look-behinds but variable length look-aheads are ok. You can get around the limitation by specifying an alternation of different length look-behinds, for example
i.e do something if we find one or more digits preceded by either the beginning of the string or three 'X's. Note that I use the 'x' pattern modifier to allow whitespace and comments inside the pattern to aid readability.