The first rule matches something like |hello|, including the pipe characters. The second rule matches just the pipe characters. Ultimately, I would like those pipe characters to get BOTH scopes assigned to it. How would I accomplish that in the tmLanguage file?

First of all you would switch to writing tmLanguage files in JSON and converting them with the wonderful PlistJsonConverter plugin. (Actually, this is optional, but _highly_ recommended if you value your sanity.)