yes but the construct (.-) can still match more characters as needed to satisfy the first required space.
All the leading repeated 'a' are then part of the match of (.-).
The difference with (.*) occurs when (.-) is followed by another repeated subpattern and there's an ambiguity about which of the two should capture the content: with '.-' the repetition stops as soon as the following subpattern start matching, but with (.*) if the following starts matching but then fails later, there will be no rollback in '.-' to try eating another repetition that could potentially be eaten by what follows.
This makes '-' much faster than '*' in many patterns. But both will still match one or more characters ('*' is greedy and attempts to match the longest then will try matching the rest: if it fails, it will get backward to retry with less matches; the other '-' is not, so instead, when there's a space here it attempts to match that space until the full regexp is matched successfully and if it matches, then '-' will not get backward; badically '-' is used to match left context, '*' for the right context; when '-' is not follwoed by any repeated subpattern, both '-' and '*' are equivalent)
Here the unconditional subpattern to match is " x ", it is not repeated, so (.-) or (.*) before it are equivalent. for the input "aaa x bbb".
You would see however a difference with the input "aaa x bbb x ccc":
- with '(.-) x (.*)', the first capture would be 'aaa' and the second one would be 'bbb x ccc'
-
with '(.*) x (.*)', the first capture would be 'aaa x bbb' and the second one would be 'ccc'