Message result = parse("%r[foo %{foo bar(%/blarg%{bux}/xi)} bar]");
assertEquals("internal:compositeRegexp", result.name());
assertEquals("foo ", ((Text)((Message)result.arguments().seq().first()).literal()).text());
assertEquals("foo", ((Message)result.arguments().seq().more().first()).name());
assertEquals("bar", ((Message)result.arguments().seq().more().first()).next().name());
assertEquals("internal:compositeRegexp", ((Message)((Message)result.arguments().seq().more().first()).next().arguments().seq().first()).name());
assertEquals("blarg", ((Text)((Message)((Message)((Message)result.arguments().seq().more().first()).next().arguments().seq().first()).arguments().seq().first()).literal()).text());
assertEquals("bux", ((Message)((Message)((Message)result.arguments().seq().more().first()).next().arguments().seq().first()).arguments().seq().more().first()).name());
assertEquals("xi", ((Text)((Message)((Message)((Message)result.arguments().seq().more().first()).next().arguments().seq().first()).arguments().seq().more().more().first()).literal()).text());
assertEquals(" bar", ((Text)((Message)result.arguments().seq().more().more().first()).literal()).text());