local matchNouns = {"<<", ">>"}
local matchOther = {"%f[<]<%f[^<]", "%f[>]>%f[^>]"}
local str = "<Hello> <<world>>, <my> <<name>> <is> <<John>>"
local function printOtherMatches(str)
-- Get opening and closing brackets
local open, close = unpack(matchOther)
-- Concatenate opening and closing brackets with
-- pattern for finding all characters in between them
for other in str:gmatch(open .. ".-" .. close) do
print(other)
end
end
printOtherMatches(str)
bG9jYWwgbWF0Y2hOb3VucyA9IHsiPDwiLCAiPj4ifQpsb2NhbCBtYXRjaE90aGVyID0geyIlZls8XTwlZltePF0iLCAiJWZbPl0+JWZbXj5dIn0KCmxvY2FsIHN0ciA9ICI8SGVsbG8+IDw8d29ybGQ+PiwgPG15PiA8PG5hbWU+PiA8aXM+IDw8Sm9obj4+IgoKbG9jYWwgZnVuY3Rpb24gcHJpbnRPdGhlck1hdGNoZXMoc3RyKQogICAgLS0gR2V0IG9wZW5pbmcgYW5kIGNsb3NpbmcgYnJhY2tldHMKICAgIGxvY2FsIG9wZW4sIGNsb3NlID0gdW5wYWNrKG1hdGNoT3RoZXIpCgogICAgLS0gQ29uY2F0ZW5hdGUgb3BlbmluZyBhbmQgY2xvc2luZyBicmFja2V0cyB3aXRoCiAgICAtLSBwYXR0ZXJuIGZvciBmaW5kaW5nIGFsbCBjaGFyYWN0ZXJzIGluIGJldHdlZW4gdGhlbQogICAgZm9yIG90aGVyIGluIHN0cjpnbWF0Y2gob3BlbiAuLiAiLi0iIC4uIGNsb3NlKSBkbwogICAgICAgIHByaW50KG90aGVyKQogICAgZW5kCmVuZAoKcHJpbnRPdGhlck1hdGNoZXMoc3RyKQ==