You are really missing the point of Lua. It’s supposed to be an easy, beginner friendly, portable and SMALL programming language. That’s why it doesn’t have Regex, but provides Patterns. The syntax is supposed to be simple & easy so that it can be easily reimplemented and understood by a compiler/interpreter/VM developer.
Is Brainfuck not a “proper programming language” because it has… none of these features? Of course not. You tell the machine what to do; it does it
It’s very tempting to shit on Lua because of muh C family languages, but I’m sure a heaving amount of us started off with Lua and owe our careers to it thanks to its simplicity, beginner friendliness and portability. I certainly do, I learnt Lua when I was fucking nine. I would feel sorry for nine year old me if he was forced to learn a C family language, or really any other lower level ““proper programming language”” that people worship.
C# is awesome news to us experienced programmers, but Lua was always a fantastic start to programming for the absolute beginner, and it’s a huge reason for Garry’s Mod and ROBLOX’s success, for example, since the barrier to access is so low even a nine year old can learn it.