I guess, you're trying to build,
(?=.*a)(?=.*s)(?=.*e)
for the full expression of,
^(?=.*s)(?=.*e)(?=.*a).*$
which,
myRegex.append(String.format("(?=.*%c)", c));
may partially work.
Being said that, a positive lookahead for each char is not really efficient or the best idea here, because each one is an O(N) time complexity.
If you wish to simplify/modify/explore the expression, it's been explained on the top right panel of regex101.com. If you'd like, you can also watch in this link, how it would match against some sample inputs.
Test
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularExpression{
public static void main(String[] args){
final String regex = "^(?=.*s)(?=.*e)(?=.*a).*$";
final String string = "Apples Bananas and Grapes\n"
+ "Some String that doeS not have A lower S or E or A";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
}
}
}
Output
Full match: Apples Bananas and Grapes