These challenges have ranged from fun to frustrating depending upon my current understanding of how to solve a given day's exercises. Please bear in mind that these are coding challenges meant to achieve the objective of solving the puzzle rather than solving real world problems and do not reflect the manner in which I would implement them in a production application particularly with respect to OOP. I may refactor when I have finished.
Advent of Code for putting this together! Regex101 for allowing me to rapidly test my regex approaches used in Days 5 and 8. PHP: Docmentation for proving that if you can dream it, PHP probably has a function for it.