  In this paper, we consider the satisfiability problem for string logic with
equations, regular membership and Presburger constraints over length functions.
The difficulty comes from multiple occurrences of string variables making
state-of-the-art algorithms non-terminating. Our main contribution is to show
that the satisfiability problem in a fragment where no string variable occurs
more than twice in an equation is decidable. In particular, we propose a
semi-decision procedure for arbitrary string formulae with word equations,
regular membership and length functions. The essence of our procedure is an
algorithm to enumerate an equivalent set of solvable disjuncts for the formula.
We further show that the algorithm always terminates for the aforementioned
decidable fragment. Finally, we provide a complexity analysis of our decision
procedure to prove that it runs, in the worst case, in factorial time.
