#!/usr/bin/perl
use warnings;
use strict;
my $text = "X4IitemX6Nabc123";
if ($text =~ m/^X(?<namelen>[0-9]+)I(?<name>(??{".{".$^N."}"}))X(?<numlen>[0-9]+)N(?<num>.+)$/) {
print $text . ": PASS!\n"; } else {
print $text . ": FAIL!\n" }
# -> X4IitemX6Nabc123: PASS!
IyEvdXNyL2Jpbi9wZXJsCnVzZSB3YXJuaW5nczsKdXNlIHN0cmljdDsKCm15ICR0ZXh0ID0gIlg0SWl0ZW1YNk5hYmMxMjMiOwppZiAoJHRleHQgPX4gbS9eWCg/PG5hbWVsZW4+WzAtOV0rKUkoPzxuYW1lPig/P3siLnsiLiReTi4ifSJ9KSlYKD88bnVtbGVuPlswLTldKylOKD88bnVtPi4rKSQvKSB7CiAgICBwcmludCAkdGV4dCAuICI6IFBBU1MhXG4iOwp9IGVsc2UgewogICAgcHJpbnQgJHRleHQgLiAiOiBGQUlMIVxuIgp9CiMgLT4gWDRJaXRlbVg2TmFiYzEyMzogUEFTUyE=