From the "real" reference (W3C):
E[foo^="bar"]
an E element whose "foo" attribute value begins exactly with the string "bar"
E[foo|="en"]
an E element whose "foo" attribute has a hyphen-separated list of values beginning (from the left) with "en"
Always go to the actual standard when there appears to be an inconsistency. I tend to avoid w3schools because their quality control is sometimes less than stellar.