Люди будут ненавидеть меня за это, но я нашел это интересным упражнением.Хотя регулярные выражения не могут выполнять арифметику, вы можете использовать условные группы, чтобы эффективно построить библиотеку, которая сопоставляет каждую цифру с ее значением -1.
^(1)?(2)?(3)?(4)?(5)?(6)?(7)?(8)?(9)?abc(?(1)0)(?(2)1)(?(3)2)(?(4)3)(?(5)4)(?(6)5)(?(7)6)(?(8)7)(?(9)8)$
https://regex101.com/r/47XDtD/1
Другой ответ, опубликованный здесь, намного проще и эффективнее в вычислительном отношении, но условные группы обеспечат большую гибкость в случае, если ваши реальные данные более сложны (например, если вам нужно сопоставить уменьшенное число несколько раз).