* Supports brackets * Supports various operators: * <,<=,>,>= * == and = for equality. Equality is case insensitive. * <> and != for inequality * like for SQLish pattern matching on strings. _ matches exactly one character, and % matches zero or more characters. For example "fish" like "fi%" is true. The like operator is case insensitive. * relike allows for regular expression matches on strings. The relike operator is case insenstive. For example "Potato" relike "p[ota]+o". * + is for addition and string concatenation. * - does subtraction. * * will provide multiplication, and string repetition. (eg "x"*5 will evaluate to "xxxxx") * / provides division. * * and / have higher precidence than + and -. * not can be used to negate a subexpression. * - can be used as an unary minus. * The exists operator can be used to test if an attribute exists for an auction. For example "exists buynow" will return true if the auction has a buynow set. * Numbers may start with a "$", and contain internal ,'s. * Fields must start with a letter (or _) and consist of alphanumerics. * AND and OR can be used to join subexpressions. * Ternary operator is supported ( condition ? ifTrue : ifFalse ) * Functions are supported * log * sqrt * Precidence is used. 2+3*4 is 14, not 24. * Strings must be quoted in " or ', and \ can be used to escape quotes. * Mentioning a field will generally require the field to be present, unless the expression is negated with NOT. Thus "not (buynow<10)" will include auctions with no buynow, or where the buynow is greater or equal to 10, but not buynow's less than 10. "buynow<5" will include all auctions that have a buynow less than 5, but will exclude everything that has no buynow. * True and False are constants with the obvious value. * You can define simple anonymous functions using the syntax { arguments => expression } * Examples: bid*100/buynow > 90 # Return all results that are within 10% of their buynow not (title like '%broken%') # Ignore all auctions who have "broken" in their title title relike '.*$?[0-9\,]\s+pw.*' # matches $120pw 10pw but not fish exists bedrooms # matches all auctions with a number of bedrooms bathrooms >= bedrooms/2 # matches all houses that have plenty of bathrooms (category = 'Electronics-photography/TVs/LCD/40+' or category = 'Electronics-photography/TVs/LCD/3039') and pi*(size/2)*(size/2) < 10000 # Because you can. log(buynow) / sqrt(size) < 1 { x => x + 1 }(1) {f x => x == 0 ? 1 : x * f(f,x-1)}({f x => x == 0 ? 1 : x * f(f,x-1)},5) > buynow