Erlang patterns

Implement Erlang semantics when matching: [Erlang ref man's section “Pattens”](http://www.erlang.org/doc/reference_manual/expressions.html#id77958)

```ruby
f({connect,_,To,_,_} = Signal, To, 1+2 bxor 3 = 0) =
    S = ("prefixed string") # That's embarrassing
    "prefix"++Str = S
    [$p,$r,$e,$f,$i,$x|_] = S
```
#### That's embarrassing
The "embarrassing" part is about the `string` rule, `string : String+ ;`, meaning that multiple string blocks are concatenated at compile time.
This interferes with matching `S` here, as formatting suggests.

It is now *a matter of readability*:
* we could define `string` as just `String` and loose the handy `"long text…" "…continued"`
    * it would be replaced by `"long text…" ++ "…continued"` only difference is: more verbose
    * *but* (or *and*) braces on the second line would not be needed
* or keep `string` the way it is here.

**Which should we pick?**