V query := "mycelium"
V number := 100
V var := "value"                                  
V hello := "Hello World!"                           
E {var} value
E {hello} Hello%20World%21
V var := "value"                                  
V hello := "Hello World!"                           
V path := "/foo/bar"                               
E {+var} value
E {+hello} Hello%20World!
E {+path}/here /foo/bar/here
E here?ref={+path} here?ref=/foo/bar
E X{#var} X#value
E X{#hello} X#Hello%20World!
V var := "value"                                  
V hello := "Hello World!"                           
V empty := ""                                       
V path := "/foo/bar"                               
V x := "1024"                                   
V y := "768"                                    
E map?{x,y} map?1024,768
E {x,hello,y} 1024,Hello%20World%21,768
E {+x,hello,y} 1024,Hello%20World!,768
E {+path,x}/here /foo/bar,1024/here
E {#x,hello,y} #1024,Hello%20World!,768
E {#path,x}/here #/foo/bar,1024/here
E X{.var} X.value
E X{.x,y} X.1024.768
E {/var} /value
E {/var,x}/here /value/1024/here
E {;x,y} ;x=1024;y=768
E {;x,y,empty} ;x=1024;y=768;empty
E {?x,y} ?x=1024&y=768
E {?x,y,empty} ?x=1024&y=768&empty=
E ?fixed=yes{&x} ?fixed=yes&x=1024
E {&x,y,empty} &x=1024&y=768&empty=
V var := "value"                                  
V hello := "Hello World!"                           
V path := "/foo/bar"                               
V list := ("red", "green", "blue")                 
V keys := [("semi",";"),("dot","."),("comma",",")] 
E {var:3} val
E {var:30} value
E {list} red,green,blue
E {list*} red,green,blue
E {keys} semi,%3B,dot,.,comma,%2C
E {keys*} semi=%3B,dot=.,comma=%2C
E {+path:6}/here /foo/b/here
E {+list} red,green,blue
E {+list*} red,green,blue
E {+keys} semi,;,dot,.,comma,,
E {+keys*} semi=;,dot=.,comma=,
E {#path:6}/here #/foo/b/here
E {#list} #red,green,blue
E {#list*} #red,green,blue
E {#keys} #semi,;,dot,.,comma,,
E {#keys*} #semi=;,dot=.,comma=,
E X{.var:3} X.val
E X{.list} X.red,green,blue
E X{.list*} X.red.green.blue
E X{.keys} X.semi,%3B,dot,.,comma,%2C
E X{.keys*} X.semi=%3B.dot=..comma=%2C
E {/var:1,var} /v/value
E {/list} /red,green,blue
E {/list*} /red/green/blue
E {/list*,path:4} /red/green/blue/%2Ffoo
E {/keys} /semi,%3B,dot,.,comma,%2C
E {/keys*} /semi=%3B/dot=./comma=%2C
E {;hello:5} ;hello=Hello
E {;list} ;list=red,green,blue
E {;list*} ;list=red;list=green;list=blue
E {;keys} ;keys=semi,%3B,dot,.,comma,%2C
E {;keys*} ;semi=%3B;dot=.;comma=%2C
E {?var:3} ?var=val
E {?list} ?list=red,green,blue
E {?list*} ?list=red&list=green&list=blue
E {?keys} ?keys=semi,%3B,dot,.,comma,%2C
E {?keys*} ?semi=%3B&dot=.&comma=%2C
E {&var:3} &var=val
E {&list} &list=red,green,blue
E {&list*} &list=red&list=green&list=blue
E {&keys} &keys=semi,%3B,dot,.,comma,%2C
E {&keys*} &semi=%3B&dot=.&comma=%2C
V var := "value"
V semi := ";"
E {var} value
E {var:20} value
E {var:3} val
E {semi} %3B
E {semi:2} %3B
V year := ("1965", "2000", "2012")
V dom := ("example", "com")
E find{?year*} find?year=1965&year=2000&year=2012
E www{.dom*} www.example.com
V count := ("one", "two", "three")
V dom := ("example", "com")
V dub := "me/too"
V hello := "Hello World!"
V half := "50%"
V var := "value"
V who := "fred"
V base := "http://example.com/home/"
V path := "/foo/bar"
V list := ("red", "green", "blue")
V keys := [("semi",";"),("dot","."),("comma",",")]
V v := "6"
V x := "1024"
V y := "768"
V empty := ""
V empty_keys := []
V undef := null
E {count} one,two,three
E {count*} one,two,three
E {/count} /one,two,three
E {/count*} /one/two/three
E {;count} ;count=one,two,three
E {;count*} ;count=one;count=two;count=three
E {?count} ?count=one,two,three
E {?count*} ?count=one&count=two&count=three
E {&count*} &count=one&count=two&count=three
E {var} value
E {hello} Hello%20World%21
E {half} 50%25
E O{empty}X OX
E O{undef}X OX
E {x,y} 1024,768
E {x,hello,y} 1024,Hello%20World%21,768
E ?{x,empty} ?1024,
E ?{x,undef} ?1024
E ?{undef,y} ?768
E {var:3} val
E {var:30} value
E {list} red,green,blue
E {list*} red,green,blue
E {keys} semi,%3B,dot,.,comma,%2C
E {keys*} semi=%3B,dot=.,comma=%2C
E {+var} value
E {+hello} Hello%20World!
E {+half} 50%25
E {base}index http%3A%2F%2Fexample.com%2Fhome%2Findex
E {+base}index http://example.com/home/index
E O{+empty}X OX
E O{+undef}X OX
E {+path}/here /foo/bar/here
E here?ref={+path} here?ref=/foo/bar
E up{+path}{var}/here up/foo/barvalue/here
E {+x,hello,y} 1024,Hello%20World!,768
E {+path,x}/here /foo/bar,1024/here
E {+path:6}/here /foo/b/here
E {+list} red,green,blue
E {+list*} red,green,blue
E {+keys} semi,;,dot,.,comma,,
E {+keys*} semi=;,dot=.,comma=,
E {#var} #value
E {#hello} #Hello%20World!
E {#half} #50%25
E foo{#empty} foo#
E foo{#undef} foo
E {#x,hello,y} #1024,Hello%20World!,768
E {#path,x}/here #/foo/bar,1024/here
E {#path:6}/here #/foo/b/here
E {#list} #red,green,blue
E {#list*} #red,green,blue
E {#keys} #semi,;,dot,.,comma,,
E {#keys*} #semi=;,dot=.,comma=,
E {.who} .fred
E {.who,who} .fred.fred
E {.half,who} .50%25.fred
E www{.dom*} www.example.com
E X{.var} X.value
E X{.empty} X.
E X{.undef} X
E X{.var:3} X.val
E X{.list} X.red,green,blue
E X{.list*} X.red.green.blue
E X{.keys} X.semi,%3B,dot,.,comma,%2C
E X{.keys*} X.semi=%3B.dot=..comma=%2C
E X{.empty_keys} X
E X{.empty_keys*} X
E {/who} /fred
E {/who,who} /fred/fred
E {/half,who} /50%25/fred
E {/who,dub} /fred/me%2Ftoo
E {/var} /value
E {/var,empty} /value/
E {/var,undef} /value
E {/var,x}/here /value/1024/here
E {/var:1,var} /v/value
E {/list} /red,green,blue
E {/list*} /red/green/blue
E {/list*,path:4} /red/green/blue/%2Ffoo
E {/keys} /semi,%3B,dot,.,comma,%2C
E {/keys*} /semi=%3B/dot=./comma=%2C
E {;who} ;who=fred
E {;half} ;half=50%25
E {;empty} ;empty
E {;v,empty,who} ;v=6;empty;who=fred
E {;v,bar,who} ;v=6;who=fred
E {;x,y} ;x=1024;y=768
E {;x,y,empty} ;x=1024;y=768;empty
E {;x,y,undef} ;x=1024;y=768
E {;hello:5} ;hello=Hello
E {;list} ;list=red,green,blue
E {;list*} ;list=red;list=green;list=blue
E {;keys} ;keys=semi,%3B,dot,.,comma,%2C
E {;keys*} ;semi=%3B;dot=.;comma=%2C
E {?who} ?who=fred
E {?half} ?half=50%25
E {?x,y} ?x=1024&y=768
E {?x,y,empty} ?x=1024&y=768&empty=
E {?x,y,undef} ?x=1024&y=768
E {?var:3} ?var=val
E {?list} ?list=red,green,blue
E {?list*} ?list=red&list=green&list=blue
E {?keys} ?keys=semi,%3B,dot,.,comma,%2C
E {?keys*} ?semi=%3B&dot=.&comma=%2C
E {&who} &who=fred
E {&half} &half=50%25
E ?fixed=yes{&x} ?fixed=yes&x=1024
E {&x,y,empty} &x=1024&y=768&empty=
E {&x,y,undef} &x=1024&y=768
E {&var:3} &var=val
E {&list} &list=red,green,blue
E {&list*} &list=red&list=green&list=blue
E {&keys} &keys=semi,%3B,dot,.,comma,%2C
E {&keys*} &semi=%3B&dot=.&comma=%2C
