For all I can tell (and I tried using Python and its built-in regular expressions), there is nothing wrong with your regex. If it causes Reggy to crash, that is probably a bug and should reported as such.
However, it should be noted that your regex, while it avoids the commas and brackets to appear inside the matches, does include the spaces between a comma and the beginning of an item. For example, you will get " pumpkin pie" (note the leading space), rather than "pumpkin pie" as a match. I don't see any direct way to avoid this.
One way, but possibly not supported by Reggy, is to use groups to sub-select the relevant parts of matches. For example in Python:
import re
text = '[milk, pumpkin pie, eggs, juice]'
pattern = re.compile(r'\s*([^,\[\]]+)(?=,|\s*\])')
for match in pattern.finditer(text):
print match.group(1)
Note how the regex now includes leading whitespace (\s+) and round brackets around the relevant part of the match: ([^,\[\]]+). In the printing part I refer to this as group(1).
([^,\[\]\s]+)? The space is special?[and,.