Ezra Zygmuntowicz wrote: > Can we please try to keep it civil in here? You go code how you want > and I will go code how I want and we can both be happy. Actually, no, you're wrong. String's gsub, for one, has been hard-wired to force you to use magic punctuation in order to access the match data. This forces *everyone* to depend on the pseudo-global variable hacks unless they run their Regexp multiple times: str = 'root:*:0:0:System Administrator:/var/root:/bin/sh' re = /([^:]+)(:|$)/ str.gsub!(re) do |m| matchData = re.match(m) 'x' * matchData[1].length + matchData[2] end puts str => 'xxxx:x:x:x:xxxxxxxxxxxxxxxxxxxx:xxxxxxxxx:xxxxxxx' So the langauge is hard-coded to force everyone to use pseudo-global magically-scoped variables, that you have to cross your fingers and hope work the way you need at the moment. -- Neil Stevens - neil / hakubi.us 'A republic, if you can keep it.' -- Benjamin Franklin