[Overpass] Finding one-ways streets that have _no_ bike lanes/tracks?

Hello,

I need to find one-way streets in my hometown that do not have a contraflow lane/track.

This doesn’t work:


rel(123);
map_to_area -> .searchArea;

(
  //static error: In the element "has-kv" regular expressions on keys cannot be combined with negation.
  way[oneway=yes][~"(cycleway|cycleway:left)"!~"(opposite|opposite_lane|opposite_track)"](area.searchArea);
);

out body;
>;
out skel qt;

Does someone know what the right syntax is?

Thank you.

==
Edit: For others’ benefit: The following works (although I don’t know how to add the city boundaries on top of the output, to make it obvious where the city ends) :

[out:json][timeout:25];

rel(123);
map_to_area -> .searchArea;
way[oneway=yes](area.searchArea)->.myway;

(

//BAD rel(123);

way.myway;
-
way.myway[~"(cycleway|cycleway:left)"~"(opposite|opposite_lane)"];
);

out body;
> ;
out skel qt;

I used this to limit a search to a city.
When tried on a city in my area it seems to do its job.
You maybe have to adjust your searchline a bit.
And maybe admin_level is different in your country.

[out:json];

area
  ["admin_level"="10"]
  ["name"="NAME OF CITY GOES HERE"];
out body;

(
way[oneway=yes](area);
-
way[~"(cycleway|cycleway:left)"~"(opposite|opposite_lane)"](area);
);

out body;
> ;
out skel qt;

===
edit: changed code to better version.

Thank you very much.