import java.util.*;
import java.util.stream.Collectors;
import java.util.regex.*;
import java.util.stream.Collectors;

class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
	    for (String item : findBits("no binary numbers here 3434. Hey friend this is a 1. Those are 1001, 1010, 1011, 1100, 1101. This is a long value 1010101010 and this one as well 1010101010101011. 0 + 0 is a also a 0."))
			System.out.println(item);
	}
	
	public static List<String> findBits(String text) {
	    Pattern pattern = Pattern.compile("\\b(?>1(?:01)*0?|0(?:10)*1?)\\b");
	    Matcher matcher = pattern.matcher(text);
	    return matcher
	        .results().map(MatchResult::group)
	        .collect(Collectors.toList());
	}
	
}