Для начала приведу простой и немного искусственный пример: пусть нам надо проверить правильность строки
Далее стоит 13 нулей: 0000000000000
Причем, число нулей может быть произвольным от 1 и более, например,
Далее стоит 2 нуля: 00
Нам надо составить регулярное выражение, которое проверяет, что число соответствует количеству нарисованных нуликов. Этот шаблон может выглядеть так:
(\d+) \D+(??{"0{$1}"})$
Работает он таким образом: вначале в переменную $1 захватывается число (13, 2 и т.д.).
Затем идет пропуск всех нецифровых символов. Внутри динамического регулярного выражения конструируется подшаблон, состоящий из символа нуля и числителя, который равен содержимому переменной $1. Для фразы
Далее стоит 13 нулей: 0000000000000
Весь шаблон после подстановки результата выполнения кода Perl будет иметь вид
(\d+) \D+0{13}$
В случае строки
Далее стоит 2 нуля: 00
Это регулярное выражение примет вид
(\d+) \D+0{2}$
Даже для строки
Далее стоит 0 нулей:
будет найдено совпадение.