http://www.inf.puc-rio.br/~roberto/lpeg