in reply to Re: Replacing consecutive tokens in 1 pass
in thread Replacing consecutive tokens in 1 pass

That won't work. What he needs is a positive look-ahead assertion, like this:
use strict; $_ = "|90|93|foo|bar|91|92|95|96|906|"; s{ \|9 [0-6]+ (?=\|) } {|X}xg; print $_,"\n";
You also can't use 'x' mode to ignore whitespace in the replacement part. I also fixed that.