I'm not sure is this a bug in hfst-regexp2fst, Xerox replace rules or what, but this can't be right:
echo "a+ [\"\" -> \">\" ]" | hfst-regexp2fst > aa.hfst
echo "abbb" | hfst-lookup aa.hfst
abbb a>b>b>b>
Here the idea is to add a ">" after one or more "a", but they also appear after any other character. Also:
echo "a+ [\"\" @-> \">\" ]" | hfst-regexp2fst > aa_longest.hfst
produces an empty transducer.
The first command gives expected result. Rule:
"" -> ">"
or [..] -> ">" in xfst and foma
replaces every epsilon with ">" only once and it finds an epsilon before and after any symbol.
If you wish to insert something with replace rules, you could use markup rule, i.e.:
echo 'a+ -> ... ">"' | hfst-regexp2fst | hfst-fst2txt
However, the second command should not give an empty transducer, I'll fix that.
Fixed in revision 3692.