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