based on http://jquery.com/docs/Base/Expression/CSS/
and for test purposes, operating on http://jquery.com/
the following happens with filter (works on class and not on other attributes like id):
>>> $('div')
[<div class="head">,<div class="wrap">,<div class="wrap2">,<div id="side">,<div id="body">,<div class="wiki" id="content">,<div class="wikipage">,<div id="searchable">,<div style="text-align: center;">,<div id="footer">,<div class="wrap2">,<div class="col">,<div class="col">,<div class="col">,<div class="col">]
>>> $('div').filter('[@id="side"]')
[<div id="side">]
>>> $('div').filter('[@id^="side"]')
z has no properties
jquery-latest.js (line 710)
>>> $('div').filter('[@class="wrap"]')
[<div class="wrap">]
>>> $('div').filter('[@class^="wrap"]')
[<div class="wrap">,<div class="wrap2">,<div class="wrap2">]
the offending code:
// Build a custom macro to enclose it
eval("f = function(a,i){" +
( m[1] == "@" ? "z=jQuery.attr(a,m[3]);" : "" ) +
"return " + f + "}");