Use regexs instead of hacky spaces

The regexs here get pretty complex, but time doesnt seem to be affected much. Allows each internal delimiter to specify if it can be part of a word, ie {{{ ALWAYS gets treated as a delimiter, but 'if' wont get caught if there are more letters following it (requires another forced delimiter, a whitespace, or end of string)