>>734 Perl5

for (<>) {
 print;
 @a = /(\d+)/g;
 $w = pop @a;

 $o = ($w - 1) >> 3;
 $m = $w - $o * 8;
 $n = 2**(8 - $m);

 $l = join '.', @a[0..$o-1];
 $l .= '.' if '' ne $l;

 $h = $a[$o] & (255 << (8 - $m));

 $r = $o < 3 ? '.' : '';
 @b = map{$l . ($h + $_) . $r} 0..($n - 1);

 print '^(?!(' . join('|', @b) . "))\n";
 print "\n";
}

※見易くするためインデントを全角スペースに置換しています。


実行例:
https://ideone.com/VBJMMo