I would suggest Recursive Descent for general parsing, and Precedence Climbing for expressions.
Once you get the hang of Recursive Descent, parsing becomes mechanical. And with Precedence Climbing for expressions, you just plug in the appropriate operator priorities.
Some of the literature below refers to "parsing" as "syntax analysis".
QEdit's configurability was amazing. Back in the early 90s I had a completely hand built config, a feat I have never dared to repeat with subsequent editors. I wrote a lot of code in it at home, and nagged my employer into buying some licenses for the sophisticated programmers among the staff (it was a bank, so not many, but a few!). I would edit locally and FTP to the server rather than use vi directly there!
When my computer illiterate aunt decided to write a book back in the early 90s, I set her up with a minimalistic QEdit, a few bat files to perform backups, versioning, etc automatically and a floppy disk for each day of the week plus a daily backup one. Simple instructions and process, simple editing setup, and two years later the 670-page book was finished and published, and she was ready to actually learn how to use a computer.
So a big thank you for creating such an excellent tool!
Back in 1984, I purchased Turbo Pascal 2, and had several decent contracts writing various sorts of software.
In 1985 I wrote a simple programmers text editor in it (I really had no idea what I was doing - I learned as I went along), and released it as shareware.
Folks started sending me checks, and by 1988 I had to hire staff to help me process and ship orders, do tech support, and so on.
We peaked at 15 employees in the mid-90's. While I eventually converted everything to C, I still have very fond memories of Turbo Pascal. Those were the days!
Once you get the hang of Recursive Descent, parsing becomes mechanical. And with Precedence Climbing for expressions, you just plug in the appropriate operator priorities.
Some of the literature below refers to "parsing" as "syntax analysis".
See this introductory set of articles:
https://www.semware.com/html/compiler.html
Then see this (small, 160 page) book from Wirth:
http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf
See examples here - especially the C and Python examples: (lexical analysis examples included, since it must feed the parser)
http://rosettacode.org/wiki/Compiler/lexical_analyzer
http://rosettacode.org/wiki/Compiler/syntax_analyzer