function ContainsSpecialChar(input)
return string.match(input, ".*[aA]nsible.*/.*%.y[aA]ml")
end
print(ContainsSpecialChar("ansible/coucou.yml") ~= nil)
print(ContainsSpecialChar("Has open parens (") ~= nil)
print(ContainsSpecialChar("Has close parens (") ~= nil)
print(ContainsSpecialChar("Has comma ,") ~= nil)
print(ContainsSpecialChar("Has colon : ") ~= nil)
print(ContainsSpecialChar("Has semicolon ;") ~= nil)
print(ContainsSpecialChar("Has open angle bracket <") ~= nil)
print(ContainsSpecialChar("Has close angle bracket > ") ~= nil)
print(ContainsSpecialChar("Has ampersand @") ~= nil)
print(ContainsSpecialChar("Has open square bracket [") ~= nil)
print(ContainsSpecialChar("Has backslash \\") ~= nil)
print(ContainsSpecialChar("Has close square bracket ]") ~= nil)
ZnVuY3Rpb24gQ29udGFpbnNTcGVjaWFsQ2hhcihpbnB1dCkKICAgIHJldHVybiBzdHJpbmcubWF0Y2goaW5wdXQsICIuKlthQV1uc2libGUuKi8uKiUueVthQV1tbCIpCmVuZAoKcHJpbnQoQ29udGFpbnNTcGVjaWFsQ2hhcigiYW5zaWJsZS9jb3Vjb3UueW1sIikgfj0gbmlsKQpwcmludChDb250YWluc1NwZWNpYWxDaGFyKCJIYXMgb3BlbiBwYXJlbnMgKCIpIH49IG5pbCkKcHJpbnQoQ29udGFpbnNTcGVjaWFsQ2hhcigiSGFzIGNsb3NlIHBhcmVucyAoIikgfj0gbmlsKQpwcmludChDb250YWluc1NwZWNpYWxDaGFyKCJIYXMgY29tbWEgLCIpIH49IG5pbCkKcHJpbnQoQ29udGFpbnNTcGVjaWFsQ2hhcigiSGFzIGNvbG9uIDogIikgfj0gbmlsKQpwcmludChDb250YWluc1NwZWNpYWxDaGFyKCJIYXMgc2VtaWNvbG9uIDsiKSB+PSBuaWwpCnByaW50KENvbnRhaW5zU3BlY2lhbENoYXIoIkhhcyBvcGVuIGFuZ2xlIGJyYWNrZXQgPCIpIH49IG5pbCkKcHJpbnQoQ29udGFpbnNTcGVjaWFsQ2hhcigiSGFzIGNsb3NlIGFuZ2xlIGJyYWNrZXQgPiAiKSB+PSBuaWwpCnByaW50KENvbnRhaW5zU3BlY2lhbENoYXIoIkhhcyBhbXBlcnNhbmQgQCIpIH49IG5pbCkKcHJpbnQoQ29udGFpbnNTcGVjaWFsQ2hhcigiSGFzIG9wZW4gc3F1YXJlIGJyYWNrZXQgIFsiKSB+PSBuaWwpCnByaW50KENvbnRhaW5zU3BlY2lhbENoYXIoIkhhcyBiYWNrc2xhc2ggXFwiKSB+PSBuaWwpCnByaW50KENvbnRhaW5zU3BlY2lhbENoYXIoIkhhcyBjbG9zZSBzcXVhcmUgYnJhY2tldCBdIikgfj0gbmlsKQoK