Following the Snobol tradition, LPeg defines patterns as first-class objects. That is, patterns are regular Lua values (represented by userdata). The library offers several functions to create and compose patterns. With the use of metamethods, several of these functions are provided as infix or prefix operators. On the one hand, the result is usually much more verbose than the typical encoding of patterns using the so called regular expressions (which typically are not regular expressions in the formal sense). On the other hand, first-class patterns allow much better documentation (as it is easy to comment the code, to use auxiliary variables to break complex definitions, etc.) and are extensible, as we can define new functions to create and compose patterns.
A. Søgaard. Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP), page 2765--2770. Online, Association for Computational Linguistics, (November 2020)
D. Gaddy, M. Stern, and D. Klein. Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers), page 999--1010. New Orleans, Louisiana, Association for Computational Linguistics, (June 2018)
F. Drewes, B. Hoffmann, and M. Minas. Graph Transformation: 10th International Conference, ICGT 2017, Held as Part of STAF 2017, Marburg, Germany, July 18-19, 2017, Proceedings, volume 10373 of Lecture Notes in Computer Science, page 106--122. Cham, Springer International Publishing, (2017)
J. Illig, B. Roth, and D. Klakow. Proceedings of the 14th Conference of the European Chapter of the Association for Computational Linguistics, volume 2: Short Papers, page 100--105. Gothenburg, Sweden, Association for Computational Linguistics, (April 2014)
F. Drewes, B. Hoffmann, and M. Minas. Graph Transformation, 8th International Conference, ICGT 2015, L'Aquila, Italy, volume 9151 of Lecture Notes in Computer Science, page 19-34. Springer International Publishing, (2015)