in reply to capturing names

Take a look at split - this function allows you to split strings based on whatever character you specify and returns a list of elements derived from the split up string. In this instance, you could detect for the existance of the '#', then split on it and get the first element of the array that split returns - which would be the first part of the line that you want to capture.