So powershell (and most languages) have an assignment by addition operator that works with string by adding the new string to the tail of the original

For example this:

$targetPath += "\*"

Will do the same thing as this:

$targetPath = "$targetPath\*"

Is there an operator that can do the same thing, but by prefixing the current string?

Of course, I can do the following, but I'm looking for something slightly terser

$targetPath = "Microsoft.PowerShell.Core\FileSystem::$targetPath"

PowerShell doesn't - but the .NET [string] type has the Insert() method :

PS C:\> "abc".Insert(0,"xyz")
xyzabc

You still can't shortcut the assigment though, it would become:

$targetPath = $targetPath.Insert(0,'Microsoft.PowerShell.Core\FileSystem::')

Alternatively, create a function that does it for you:

function Prepend-StringVariable {
    param(
        [string]$VariableName,
        [string]$Prefix
    )

    # Scope:1 refers to the immediate parent scope, ie. the caller
    $var = Get-Variable -Name $VariableName -Scope 1
    if($var.Value -is [string]){
        $var.Value = "{0}{1}" -f $Prefix,$var.Value
    }
}

And in use:

PS C:\> $targetPath = "C:\Somewhere"
PS C:\> Prepend-String targetPath "Microsoft.PowerShell.Core\FileSystem::"
PS C:\> $targetPath
Microsoft.PowerShell.Core\FileSystem::C:\Somewhere

Although I'd generally recommend against this pattern (writing back to variables in ancestral scopes unless necessary)