If you are interested in learning about text (not binary) parsing in Elixir check out the nimbleparsec library:
https://hexdocs.pm/nimble_parsec/NimbleParsec.html
I was able to write a very succinct parser for woodworking (using imperial fractions) in around 38 lines of commented code. It parses strings like 0.25 or 2 or 1/4 or 1/4" or 1' 2 3/4" and pops out an integer or float in inches.
I had never used a parser combinator library before but I have written many recursive descent parsers over the years. I was a little surprised when I added the `debug: true` option and saw the shear amount of code it generated. That probably could be reduced by refactoring my combinators.