Using powershell on Windows, when I use the following simple regular expression to remove any space characters at the end of the string and also append a period, I get duplication of the replacement string when there are spaces. Almost as if the spaces and the end-of-line is matched separately:

```
PS C:\>  "walk along the edge"   -replace ' *$',"s."
walk along the edges.
PS C:\>  "walk along the edge "  -replace ' *$',"s."
walk along the edges.s.
PS C:\>  "walk along the edge  " -replace ' *$',"s."
walk along the edges.s.

```

But I expected a more consistent behavior, like this:

```
$ echo "walk along the edge"   | sed "s/ *$/s./"
walk along the edges.
$ echo "walk along the edge "  | sed "s/ *$/s./"
walk along the edges.
$ echo "walk along the edge  " | sed "s/ *$/s./"
walk along the edges.

```

This is consistent between PS v7.2.5 and 4.1, both on Windows.
Referencing standard GNU sed on RHEL-flavored linux, if that matters.
I tried some parenthesis to "force" grouping, and escaping the dollar sign, to no avail.

How do I force the entire matching expression to be evaluated as one big match, in powershell?

Adding an extra space (or using the + metacharacter rather than \*) is not quite what is required:

```
PS C:\>  "walk along the edge   " -replace '  *$',"s."
walk along the edges.
PS C:\>  "walk along the edge"   -replace '  *$',"s."
walk along the edge

```

Although it solves all the cases where there *is* a space, it fails for the case where there is not a space.