Scala PacktRat Parser Restrict Operator to Exactly One
===

Currently I am using the Scala PackratParsers in Scala 2.9.2 
The production looks like this:

      lazy val andExpression: PackratParser[Expression] = equalityExpression | expression ~ "&" ~ expression ^^ {
          case x ~"&"~y => AndExpr(x,y)
        }
        
      lazy val orExpression: PackratParser[Expression] = andExpression | ( expression ~ "|" ~ expression ) ^^ {
          case x ~"|"~y => OrExpr(x,y)
        }

It works great with the input

    "a & b", "a | c", "(a & b) | c"

However, I just discover that my parser is too greedy.

    "a && b", "a &&& b", "a ||||| b"

It parsers fine. I believe I am just missing an explicit matcher count on the combinator. What is it to exactly say `e ~ "&".{1} ~ e` ? How do just match exactly one occurrence of an operator and nothing more and nothing less?