string.sub returns empty string