s{
(?<escape>\\?)
\[\[\Q$prefix\E
- (?:\s+id="(?<id>[^"]*)")?
- (?<space_begin>\s+)
+ (?:(?<id_space>\s+)id="(?<id>[^"]*)")?
+ (?<params_space>\s+)
(?<params>$params_re)
- (?<space_end>\s*)
+ (?<end_space>\s*)
\]\]
}
{$id=$+{id};
$+{escape}
.'[['.$prefix
- .($+{id} eq ''?'':'id="'.$+{id}.'"')
- .$+{space_begin}
+ .($+{id} eq ''?'':$+{id_space}.'id="'.$+{id}.'"')
+ .$+{params_space}
.$edit->($+{escape}, $+{params})
- .$+{space_end}
+ .$+{end_space}
.']]'
}egsx;