I'm disappointed by the deprecation and decay of features of DDG and Goog in recent years, it seems like the trend is toward dumbing-down.<p>It used to be that double-quoted strings meant "search for exactly this, not fuzzy searches". Now, DDG requires a plus sign in front of a double-quoted string. <i>+"KS-19319ZJFT"</i><p>Also, way, way back, you could conduct elaborate boolean searches like (space equals implicit "and", so it's omitted):<p><pre><code> site:foo.com -site:docs.foo.com ((lemons "crab apples") or ((oranges beans) (cherries plums)))
</code></pre>
Ideally, I'd like a syntax that looks like this:<p><pre><code> search = "( search ")"
| "-" search
| search ("and")? search
| search "or" search
| constraint
| term
term = quoted_term
| simple_term
quoted_term = '"'([^"\\]|'\\"')+'"'
| "'"([^'\\]|"\\'")+"'"
simple_term = [^'" ]+
constraint = file_type_constraint
| url_constraint
| site_constraint
| temporal_constraint
file_type_constraint = "filetype:" (common_type|"*"?"."?[a-z0-9]+)
| "mimetype:" regex
common_type = "video"|"photo"|"audio"|"email"|"web"|"document"|"text"
url_constraint = "inurl:" regex
site_constraint = "site:" regex
time_constraint = "before:" date
| "after:" date
| "within:" time
/* "and," "or," and : prefixes should be case-insensitive and localizable */
/* date, time and regex are "exercises for the reader" ;) */</code></pre>