Improve ruby variables and symbols parsing rules

For variables:

  - variables names can't include a ? nor a !

For symbols:

  - can be operators (e.g :+, :/, :-, :>>)
  - start with @ or $
  - end with !, ? or =
  - can't start by a digit

For symbols defined in reverse as hash keys (e.g {foo: 'bar'}):

  - can only start with [a-zA-Z\_]
  - can't end with =