[ruby mode] Variables names can't include a ? nor a !
[ruby mode] Improve symbols parsing rules

  - can be operators (e.g :+, :/, :-, :>>)
  - start with @ or $
  - end with !, ? or =
  - can't start by a digit

Though when defined in reverse as hash keys (e.g {foo: 'bar'})

  - can only start with [a-zA-Z\_]
  - can't end with =
[ruby mode] Instance and class variables can't start by a digit but globals can be only digits