RegEx/Namespace.regex.txt
# Finds a Namespace (captures the Name and the Content between {})
namespace # the keyword namespace FOLLOWED BY \s{1,} # at least one whitespace character FOLLOWED BY (?<Name>\S{1,}) # the NAME of the namespace is N-non-whitespace FOLLOWED BY \s{0,} # optional whitespace FOLLOWED BY (?<Content>\{ # the CONTENT starts with an opening bracket FOLLOWED BY (?> # an atomic group CONTAINING [^\{\}]+| # Anything that's not a bracket OR \{(?<Depth>)|# if it's a bracket, increment depth OR \}(?<-Depth>)# if it's a closing bracket, decrement depth )* # 0 or more times (?(Depth) # IF depth is set (?!)) # this group isn't balanced, keep filling content \}) # until we run into a closing bracket |