Creat0R, я когда полгода назад похожую функцию писал для форматирования строки, то решил не использовать регулярки, но все равно без разбивки данных через массив не обошлось:
Код:

#include <String.au3>
#include <Array.au3>
$add_fullpath_str=_FopenDlgStr(@WindowsDir & "\", "Все файлы (*.*)", 5)
MsgBox(4096,"Info:",$add_fullpath_str)
Func _FopenDlgStr($inpath, $infilter, $inparam)
Local $open_dlg=FileOpenDialog("Open:", $inpath, $infilter, $inparam)
If @error Then
MsgBox(16,"Error:","Не выбрано ни одного файла!")
Return 0
Else
$expdir_arr=_StringExplode($open_dlg, "|", 1)
$expdir_arr[0]=$expdir_arr[0]&"\"
If UBound($expdir_arr) > 1 Then
$begin_dir_add=$expdir_arr[0]&$expdir_arr[1]
$result_str=StringReplace($begin_dir_add, "|", "|"&$expdir_arr[0])
Else
$result_str=$open_dlg
EndIf
Return $result_str
EndIf
EndFunc