I've just started Ruby a couple days ago (man this is cool). Coming from the embedded world of Forth and C, being able to do some string parsing easily is what I'm looking forward to. So, onto a couple questions that I can't seem to find the answers to: Quickly, the "teach myself" project is a simple ARM assembler. I've done it numerous times, and it is something I'm familiar and comfortable with (let alone something I need ATM). 1. How can a regexp get the longer of two possibilities that are ambiguous? For example, I need to be able to strip out register names: registers = '(r0|r1|r2|r3...|r10|r11|r12...)' In the regular expression, how can I get it to find r10 or r11 instead of stopping at r1? I get the same problem with opcode mnemonics (like B instead of BX or BL). 2. I don't seem to understand the @ convensions for variable names. Is this just a naming convension that people stick to (like *name* system names in Lisp) but aren't required? I noticed that if I have a global variable: x = 10 In some function: def show_x print x end This fails (unknown local x). But if I use @x in both cases it works just fine. Can someone explain this to me? Also, what about @@ variables? Likewise, is there @@@ or @@@@ ? Thanks in advance. -- Best regards, Jeff jma[at]mfire.com http://www.jm-basic.com